seagazer / animlogoview

A custom view easy to make vivid animation for logo display.
Apache License 2.0
53 stars 10 forks source link

如何在logoName上添加logo? #1

Closed ziyouxiaozi closed 3 years ago

ziyouxiaozi commented 3 years ago

现在只能添加logo名没办法添加logo吗?

seagazer commented 3 years ago

恩恩,如果要加app logo图片的话需要用组合控件的方式搭配使用,目前只提供app name的文字动效

ziyouxiaozi commented 3 years ago

什么时候加入支持logo的功能呢?

ziyouxiaozi commented 3 years ago

怎么控制logo名字动画完了之后,logo名字显示的位置呢?这个能够设置吗?

seagazer commented 3 years ago

怎么控制logo名字动画完了之后,logo名字显示的位置呢?这个能够设置吗?

水平方向无法设置偏移量,垂直可以通过verticalOffset控制最终位置偏移量,默认情况下都是在视图区域居中。当然也可以参照verticalOffset修改下源码,增加个水平偏移变量控制。目前该控件职责就是文字动画,后期不计划加入logo图片功能,建议还是通过组合控件实现

ziyouxiaozi commented 3 years ago

组合控件如何实现logo名字和logo一起动画,logo网上移动到logo名字的上面?

seagazer commented 3 years ago

组合控件如何实现logo名字和logo一起动画,logo网上移动到logo名字的上面? 对的,就是布局叠加。可以参考这个项目的开屏页,文章首页的效果就是这个项目的: https://github.com/seagazer/liteplayer

ziyouxiaozi commented 3 years ago

好的,谢谢

ziyouxiaozi commented 3 years ago

如何判断每个机型最多只能显示多少个动画文字呢?有些机型的可以显示很长的问题,有些又不可以,无法显示的就会抛异常,这样会导致无法进入APP?

ziyouxiaozi commented 3 years ago

Device: Realme RMX1901 OS version: Android 10 (SDK 29)

Stack trace:
java.lang.IllegalStateException: The text of logoName is too large that this view can not display all text at com.seagazer.animlogoview.AnimLogoView.initLogoCoordinate(AnimLogoView.java:252) at com.seagazer.animlogoview.AnimLogoView.onSizeChanged(AnimLogoView.java:229) at android.view.View.sizeChange(View.java:22373) at android.view.View.setFrame(View.java:22325) at android.view.View.layout(View.java:22184) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1845) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1845) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673) at android.widget.LinearLayout.onLayout(LinearLayout.java:1582) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:832) at android.view.View.layout(View.java:22187) at android.view.ViewGroup.layout(ViewGroup.java:6366) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3441) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2909) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2016) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8205) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1085) at android.view.Choreographer.doCallbacks(Choreographer.java:908) at android.view.Choreographer.doFrame(Choreographer.java:835) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1070) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:228) at android.app.ActivityThread.main(ActivityThread.java:7782) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)

seagazer commented 3 years ago

如何判断每个机型最多只能显示多少个动画文字呢?有些机型的可以显示很长的问题,有些又不可以,无法显示的就会抛异常,这样会导致无法进入APP?

屏宽 / 字体大小+字体间隔