Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Neumorphism in android

Avatar for Sungyong An Sungyong An
December 01, 2020

Neumorphism in android

Avatar for Sungyong An

Sungyong An

December 01, 2020
Tweet

More Decks by Sungyong An

Other Decks in Programming

Transcript

  1. ?

  2. 이슈 #2: Elevation은 어떻게 처리할까? 혹시 아래처럼 Touch Event를 다루는

    방법을 떠올리신 건 아니겠죠? override fun onTouchEvent(event: MotionEvent): Boolean { when (event.action) { MotionEvent.ACTION_DOWN -> setShapeType(ShapeType.PRESSED) MotionEvent.ACTION_UP -> setShapeType(ShapeType.FLAT) } return super.onTouchEvent(event) }
  3. 이슈 #2: Elevation은 어떻게 처리할까? StateListAnimator를이용하면간단합니다! // NeumorphCardView.kt override fun

    setTranslationZ(translationZ: Float) { super.setTranslationZ(translationZ) shapeDrawable.setTranslationZ(translationZ) } // res/animator/state_list_animator.xml <selector> <item android:state_pressed="true"> <set> <objectAnimator android:duration="100" android:propertyName="translationZ" android:valueTo="-5dp" android:valueType="floatType" /> </set> </item> <item> <set> <objectAnimator android:duration="100" android:propertyName="translationZ" android:valueTo="0" android:valueType="floatType" /> </set> </item> </selector> <soup.neumorph.NeumorphCardView android:stateListAnimator= "@animator/state_list_animator" ...
  4. Corner Customization <soup.neumorphism.NeumorphCardView app:neumorph_shapeAppearance="@style/MyShapeAppearance" /> <style name="MyShapeAppearance"> <item name="neumorph_cornerFamily">rounded</item> <item

    name="neumorph_cornerSize">16dp</item> <item name="neumorph_cornerSizeTopLeft">64dp</item> <item name="neumorph_cornerSizeTopRight">64dp</item> </style>
  5. ‣ Bitmap을 Blur 처리하여 Neumorphic UI를 성취할 수는 있었다. 


    (성능은 먼나라 이웃나라 이야기...) ‣ 단순히 재미로 시작했지만, 어느새 이슈에 쫓기는 느낌이 들었다. 
 (Star가 많은 오픈소스 메인테이너는 참 대단하다는 생각이 들었다.) ‣ 제곧내, 중복빌런 등 대부분의 이슈는 불친절한 느낌이었다. 
 (오픈소스 라이브러리에 이슈 올릴 때는 자세하게 적어줘야 겠다는 반성) 끝으로 소감을 정리하면!