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

Neumorphism in android

Sungyong An
December 01, 2020

Neumorphism in android

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가 많은 오픈소스 메인테이너는 참 대단하다는 생각이 들었다.) ‣ 제곧내, 중복빌런 등 대부분의 이슈는 불친절한 느낌이었다. 
 (오픈소스 라이브러리에 이슈 올릴 때는 자세하게 적어줘야 겠다는 반성) 끝으로 소감을 정리하면!