Giter Club home page Giter Club logo

scrolltextview's Introduction

About ScrollTextView

Class ScrollTextView extends SurfaceView implements SurfaceHolder.Callback

Android 滚动字幕,如新闻联播下面的,可以使用在广告机,滚动新闻信息,机场地铁等信息发布系统。 以前是在信息发布系统上使用过,作为动态布局的一部分,题外话,如果有想做像分众传媒或者类似的 电梯广告的可以参考一下.

You can use it in advisement player,TV news show or airport metro information public system App.

动态布局专利:http://www.google.com/patents/CN103336691A?cl=zh (科学上网打开)

继承SurfaceView 实现,CPU 占用低,无内存抖动,以Nexus5X,Android 7.0 上测试流畅度很好, 大部分品牌手机测试兼容性良好。

How to use

Gradle 集成使用 (2.4.0 支持AndroidX,并且Target SDK=33)

 implementation 'io.github.anylifezlb:ScrollTextviewLib:2.4.0'

基础设置代码概要

    <anylife.scrolltextview.ScrollTextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/imageView2"
        android:layout_marginRight="6dp"
        android:singleLine="true"
        customAttr:clickEnable="true"
        customAttr:isHorizontal="true"
        customAttr:speed="1"
        customAttr:text="ScrollTextView Auto Scroll.1234567890,"
        customAttr:text_size="14sp"
        customAttr:text_color="#ffffffff"
        customAttr:times="567" />

或者在代码中

    scrollText = findViewById(R.id.scrollText);
    scrollText.setSpeed(4);
    scrollText.setText("new text");
    scrollText.setTextColor(0xffad43ae);

关于提Issues

本库一直在持续维护中,但是能投入的时间不多,有issues 的同学说明一下以下内容

  • 1.使用场景: 比如ViewPager+fragment 滑动切换出现XX和YY 问题
  • 2.Android系统信息: 手机品牌或特殊设备描述,Android系统版本号等信息

.

Any questions,please contact me at: [email protected]

视频看起来卡顿是录制调低了帧律以便快速上传和播放。

gif.mp4

scrolltextview's People

Contributors

anylifezlb avatar faceai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scrolltextview's Issues

播放视频的时候滚动字幕会卡

需求:
公司要求做一个电视广告系统,在播放视频的同时,需要在底部加一个滚动广告
问题:
使用系统自带的Textview实现跑马灯效果没有出现这种卡顿的情况,但是Textview会有一个问题,就是运行的时候,内存会一直往上涨,而您的这个控件在内存上控制的很好很稳定。但是在使用videoview播放视频的时候,使用您的ScrollTextView播放文字会出现卡顿情况。不知道是不是因为运行内存太小的原因导致的。
硬件:
系统 Android 4.4.4
内存大小 512M
磁盘大小 4G

dont move

I try add the xml codes,but it doesn't move, is it need other settings?

cannot be cast to android.app.Activity

Caused by: java.lang.ClassCastException: android.app.Presentation$3 cannot be cast to android.app.Activity
at anylife.scrolltextview.ScrollTextView.(ScrollTextView.java:103)
at java.lang.reflect.Constructor.newInstance0(Native Method) 

原因分析:可能我用的是AppCompatActivity,而此库写死为Activity强制转换,出现错误
DisplayMetrics metric = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(metric);
density = metric.density;

一堆问题,不好用

1、没有设置滚动列表类似setContent(List content)方法,
2、文字大小设置没用,
3、没有start和stop方法
4、点击方法回调之类的也没有封装
。。。

不知道哪来的这么多star,呵呵

想请问多个一起滚动支持吗

我的使用场景是有多个,而且是有可能一起滚动,现在就是不动,而且上面文字也显示不出
还请指导我哪里问题,谢谢

使用这个控件,导致屏幕剧烈抖动。

我用的机器是Android4.4系统的定制机,不知道是什么原因,只要一用这个控件,屏幕就会剧烈抖动,我在网上查了下,好像是因为SurfaceView的双缓存机制导致的,我试着改了下,屏幕倒是不抖动了,但显示不对了~~,再说下,我的这机器如果输出分辨率是800600和1280768的时候都不会使屏幕抖动,只有再输出分辨率是1920*1080的时候屏幕就抖动,也许跟机器的硬件有关系,但是我也找不到原因,请问作者是否能软件上做一些修改?

当字数过了1k字,开头就会出现文字堆叠现象

如果字符数量超过了1k个,如果是横向滚动,最左边会有个所有文字堆叠的小方块,大小为单个文字的宽高。可以通过缝隙看到文字在背后滚动。虽然可以通过位移把布局往左偏移一个字符,但是并不是最终解决方案。不知道作者有什么处理方式嘛?

残影

activity 来回切换,并且上下滑动页面,残影很明显 清不掉。 版本1.4.6 所有机型都有

频繁切换会有问题,会超时anr

at java.lang.Thread.parkFor$(Thread.java:1220)

  • locked <0x0d1ebfb8> (a java.lang.Object)
    at sun.misc.Unsafe.park(Unsafe.java:299)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:844)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1173)
    at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:181)
    at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:257)
    at android.view.SurfaceView.updateWindow(SurfaceView.java:564)
    at android.view.SurfaceView.setVisibility(SurfaceView.java:287)
    at com.huazhu.ehotel.view.ScrollTextView.onVisibilityChanged(ScrollTextView.java:483)
    at android.view.View.dispatchVisibilityChanged(View.java:9579)
    at android.view.View.setFlags(View.java:10640)
    at android.view.View.setVisibility(View.java:7425)
    at android.view.SurfaceView.setVisibility(SurfaceView.java:274)
    at com.huazhu.ehotel.ui.movie.TvPlayDetailByIdActivity.onPause(TvPlayDetailByIdActivity.java:990)
    at android.app.Activity.performPause(Activity.java:6358)
    at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1311)
    at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3367)
    at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3340)
    at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3315)
    at android.app.ActivityThread.-wrap13(ActivityThread.java:-1)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5431)
    at java.lang.reflect.Method.invoke!(Native method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:731)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)

不支持动态布局?

不在XML里写布局,而是在actuvuty中动态布局:
addTextView(String text, int x, int y, int width, int height):

LinearLayout frameLayout = new LinearLayout(mContext);
frameLayout.setX(x);
frameLayout.setY(y);
frameLayout.setLayoutParams(new LayoutParams(width, height));
ScrollTextView scrollTextView = new ScrollTextView(mContext);
scrollTextView.setX(x);
scrollTextView.setY(y);
scrollTextView.setScaleX(width);
scrollTextView.setScaleY(height);
// scrollTextView.setMinimumWidth(width);
// scrollTextView.setMinimumHeight(height);
scrollTextView.setScrollForever(true);
scrollTextView.setSpeed(4);
scrollTextView.setText(text);
frameLayout.addView(scrollTextView);
root_layout.addView(frameLayout);
走到.setText的时候回报空引用:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.graphics.Paint.measureText(java.lang.String)' on a null object reference

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.