android TextView实现滚动显示效果
16lz
2021-01-26
在android中,如果设置了TextView控件为单行显示,且显示的文本太长的话,默认情况下会造成显示不全的情况,这种情况下我们需要设置该控件属性如下:
注意上述标记颜色的3个属性,按照上述设置这3个属性,此TextView空间就会滚动显示文本内容,保证了文本的完全显示。
但是,上述方式只适用于界面中只有1个TextView的情况,当一个界面之中有多个TextView设置了相同属性,有且只有一个控件会滚动显示,其他TextView控件则不会滚动显示。
造成这种情况的原因是TextView空间在滚动显示的时候必须获得焦点,但是默认情况下,只能有一个TextView空间获得焦点,所以造成上述情况。
解决的方法很简单,重写类TextView的方法 isFocused(),使其总是返回true,即总是属于被选中的状态,这样就能够保证多个TextView控件都有滚动显示的效果。
首先是继承TextView的类:
package com.example.administrator.test_hello_world;import android.content.Context;import android.util.AttributeSet;import android.widget.TextView;/** * Created by Administrator on 2016/3/17. * 实现跑马灯效果的TextView */public class marqueeText extends TextView { public marqueeText(Context context) { super(context); } public marqueeText(Context context, AttributeSet attrs) { super(context, attrs); } public marqueeText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } //返回textview是否处在选中的状态 //而只有选中的textview才能够实现跑马灯效果 @Override public boolean isFocused() { return true; }
接下来是布局文件:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
最后是Activity:
MainActivity.java
package com.example.administrator.test_hello_world;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { void init_view() { } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_main); init_view(); }}
更多相关文章
- Android高仿微信照片选择器+预览+显示照片
- Android(安卓)Studio之ListView的用法(上)
- Android(安卓)实现点击出现选择框,或者长按显示选择界面,PopupMen
- 用JS有效解决移动web浏览器中HTML元素的overflow:scroll滚动属性
- Android(安卓)UI设计——EditText控件
- 【Android(安卓)Training - Performance】提高显示布局文件的性
- Android百度地图开发之开发第一个小应用,显示基础的地图页面
- android页面布局时定义控件ID时@id/XX和@+id/xx 有什么区别
- [置顶] Android(安卓)实现书籍翻页效果----升级篇