Android学习——跑马灯效果的实现

来源:互联网 发布:linux 目录覆盖 编辑:程序博客网 时间:2024/06/05 04:13

一、对一个TextView组件实现跑马灯效果

1.编辑activity_main.xml文件如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/button1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/button" /><!--android:singleLine="true"设置单行显示,否则会自动换行android:ellipsize="marquee"之后三个设置都是必须的android:focusable="true"android:focusableInTouchMode="true"-->    <TextView        android:id="@+id/textView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/text"         android:singleLine="true"        android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"/></LinearLayout>

2.该种方式在对多个组件进行跑马灯设置时只会有一个实现

二、对多个组件实现跑马灯效果

1.创建新类MyTextView扩展自TextView类,并覆盖TextView所有的构造方法及isFocused方法

package com.zyy.myapp;import android.content.Context;import android.util.AttributeSet;import android.widget.TextView;public class MyTextView extends TextView {public MyTextView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public MyTextView(Context context) {super(context);// TODO Auto-generated constructor stub}@Overridepublic boolean isFocused() {// 此处才是重点,的一种方式失败的原因就是不能设置第二个组件为焦点return true;}}

2.修改activity_main.xml文件如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <Button        android:id="@+id/button1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/button" /><!--android:singleLine="true"设置单行显示,否则会自动换行android:ellipsize="marquee"之后三个设置都是必须的android:focusable="true"android:focusableInTouchMode="true"-->    <TextView        android:id="@+id/textView1"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/text"         android:singleLine="true"        android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"/><!-- 新添加的内容 -->    <com.zyy.myapp.MyTextView        android:id="@+id/textView2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/text"         android:singleLine="true"        android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"/>    <com.zyy.myapp.MyTextView        android:id="@+id/textView3"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/text"         android:singleLine="true"        android:ellipsize="marquee"        android:focusable="true"        android:focusableInTouchMode="true"/></LinearLayout>


0 0
原创粉丝点击