2

我正在做一个应用程序,其中我在 LinearLayout 中有一个文本视图和一个图像视图。触摸线性布局将我们带到另一个活动。由于文本不适合文本视图,我想使文本视图内容选取框。我尝试了可能的方法,但它不起作用。xml内容如下。

<LinearLayout
    android:id="@+id/profile_pic_Layout"
    android:layout_width="fill_parent"
    android:layout_height="100dip"
    android:layout_margin="10dip"
    android:background="@color/blue_background" >

    <ImageView
        android:id="@+id/profile_pic_menu"
        android:layout_width="100dip"
        android:layout_height="100dip"
        android:contentDescription="@string/image"
        android:scaleType="centerCrop" />

    <TextView
        android:id="@+id/profile_name_text"
        android:layout_width="fill_parent"
        android:layout_height="30dip"
        android:layout_gravity="bottom"
        android:gravity="center"
        android:marqueeRepeatLimit="1"
        android:inputType="text"
        android:lines="1"
        android:duplicateParentState="true"
        android:scrollHorizontally="true"
        android:fadingEdge="horizontal"
        android:focusable="true"
        android:textColor="@android:color/white"
        android:textSize="20sp">
        <requestFocus android:focusable="true" 
            android:focusableInTouchMode="true"
            android:duplicateParentState="true"  /> 
    </TextView>
</LinearLayout>

我还尝试通过使用设置代码中选择的文本视图,

profileNameTextView.setEllipsize(TruncateAt.MARQUEE);
profileNameTextView.setSelected(true);

我认为这是因为父线性布局具有焦点。请帮我解决这个问题..!

谢谢大家..!

4

2 回答 2

1

显然您缺少该android:ellipsize="marquee"属性

这是一个简约的工作示例:

   <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:marqueeRepeatLimit="1"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:text="HELLO HOW ARE YOU WHAT ARE YOU DOING TEST ANDROID IS WRITING TO YOU." />
于 2012-08-24T13:56:46.010 回答
1
public class TextViewMarquee extends Activity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    tv = (TextView) this.findViewById(R.id.mywidget);  
    tv.setSelected(true);  // Set focus to the textview
}
}

带有文本视图的 xml 文件:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
    android:id="@+id/mywidget"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:lines="1"
    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:textColor="#ff4500"
    android:text="Simple application that shows how to use marquee, with a long text" />

于 2014-04-10T04:06:21.457 回答