聚焦后,TextView会变成橙色吗?

时间:2010-09-09 16:20:13

标签: android

我有一个textview,我将其设置为可点击和可聚焦 - 当用户将其与拨轮等对焦时,如何将其突出显示为橙色(如按钮)?:

TextView tv = ...;
tv.setClickable(true);
tv.setFocusable(true);

由于

2 个答案:

答案 0 :(得分:10)

这很容易。这是解决方案。

你有一个TextView元素,其background属性设置为@drawable/tbselector

<TextView android:text="My text" 
    android:id="@+id/tv01"
    android:layout_width="300dip"
    android:layout_height="150dip"
    android:layout_gravity="center_horizontal"  
    android:background="@drawable/tbselector"/>

最后一个属性android:background是必不可少的,其他内容取决于你。

现在,您在tbselector.xml子目录中创建drawable。看起来像这样。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/bgdefault"
        android:state_focused="false"
        android:state_selected="false"/>
    <item
        android:drawable="@drawable/bgselected"
        android:state_focused="true"
        android:state_selected="false"/>
</selector>

现在,您在bgdefault.xml子目录中创建一个drawable,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="200dip"
        android:height="150dip"
        android:color="#00FF00"/>
    <solid
        android:color="#00FF00"/>
</shape>

最后在bgselected.xml子目录中创建一个drawable,该子目录与其他颜色值相似,例如。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size
        android:width="200dip"
        android:height="150dip"
        android:color="#FFFF00"/>
    <solid
        android:color="#FFFF00"/>
</shape>

这就是你现在拥有一个依赖于状态的TextView背景。但是,您可以决定在选择器XML中设置drawable,这完全取决于您。我的值只是随机值,以显示差异。

希望它有所帮助。

答案 1 :(得分:0)

目前我没有机会尝试,但是如何向OnFocusChangeListener添加TextView,然后使用setBackgroundColor(int color)方法将背景更改为橙色