<LinearLayout
android:id="@+id/app_video"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:nextFocusRight="@+id/app_photo"
android:nextFocusLeft="@+id/app_photo"
>
<ImageView
android:id="@+id/video_icon"
android:src="@drawable/video_selector"
android:duplicateParentState="true"
style="@style/MainItemImageStyle"
android:paddingTop="170dip"
android:paddingLeft="120dip"
>
</ImageView>
<TextView
android:paddingTop="0dip"
android:duplicateParentState="true"
android:paddingLeft="120dip"
android:id="@+id/text_video"
android:singleLine="true"
style="@style/HomeTextStyle"
android:text="@string/subtitle_video"/>
</LinearLayout>
<LinearLayout
android:id="@+id/app_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:nextFocusRight="@+id/app_video"
android:nextFocusLeft="@+id/app_video"
>
<ImageView
android:id="@+id/photo_icon"
android:src="@drawable/video_selector"
android:duplicateParentState="true"
style="@style/MainItemImageStyle"
android:paddingTop="170dip"
android:paddingLeft="120dip"
>
</ImageView>
<TextView
android:paddingTop="0dip"
android:duplicateParentState="true"
android:paddingLeft="120dip"
android:id="@+id/text_video"
android:singleLine="true"
style="@style/HomeTextStyle"
android:text="@string/subtitle_photo"/>
</LinearLayout>以下是TextView的样式<style name="HomeTextStyle">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item> <item name="android:textColor">@drawable/main_item_text</item>
<!--new add-->
<item name="android:lines">1</item>
<item name="android:ellipsize">marquee</item>
<item name="android:marqueeRepeatLimit">marquee_forever</item> <item name="android:textSize">30sp</item>
<item name="android:gravity">center</item>
<item name="android:textStyle">bold</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
</style>我现在设置的是两个LinearLayout可以左右切换聚焦,相应的图片会变(这个不用管),textview过长的时候没有跑马灯效果。
我的意思是当这个TextView的父标签被聚焦的时候,TextView也会被聚焦,因为我设置了android:focusable=true,但是没有跑马灯的效果,请教大家了如何才能实现这个跑马灯
android:maxLines="1"on anything you want to ellipsize. Also, don't use singleLine, it's been deprecated.
android:singleLine="true"
下面是我做的测试,你可以参考下。
package com.alex.hyperdialog;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;public class MarqueeTest extends Activity{ private TextView mTestView; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.marquee_test_layout);
mTestView = (TextView) findViewById(R.id.marquee_view);
} public void onTextViewClick(View v) {
mTestView.requestFocus();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"> <TextView android:id="@+id/marquee_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test marquee test"
android:maxLines="1"
android:scrollHorizontally="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:onClick="onTextViewClick"
android:focusable="true"
android:focusableInTouchMode="true"/></LinearLayout>当点击textview之后,在onClick函数中让textView 获得focus ,这时就可以看到marquee的效果了。