我试图在android上更改背景颜色:state_hovered.But它没有反映我的应用程序的任何更改。现在我想要的相对布局聚焦我想要改变它的背景和那个时间我想要更改我的文本视图文本的颜色。但这段代码对我不起作用请告诉我更改 这是我的XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<ImageView
android:id="@+id/imgLogo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="5dip"
android:padding="3dip"
android:src="@drawable/logo_demo" />
<RelativeLayout
android:id="@+id/flight_relative"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_below="@+id/imgLogo"
android:layout_marginTop="5dp"
android:background="@drawable/button_effect"
android:gravity="center_vertical" >
<ImageView
android:id="@+id/flight_list_image"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_alignParentLeft="true"
android:layout_marginRight="5dip"
android:padding="3dip"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/flight_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/flight_list_image"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp"
android:layout_toLeftOf="@+id/flight_arrow"
android:layout_toRightOf="@+id/flight_list_image"
android:text="@string/flight_tittle"
android:textColor="@drawable/text_color"
android:textStyle="bold"
android:textSize="15dp"
/>
<TextView
android:id="@+id/content_flight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/flight_content"
android:layout_marginRight="5dp"
android:layout_toLeftOf="@+id/flight_arrow"
android:layout_toRightOf="@+id/flight_list_image"
android:text="@string/flight_content"
android:textColor="#2f2f2f"
android:textSize="10dp" />
<ImageView
android:id="@+id/flight_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/flight_content"
android:layout_alignParentRight="true"
android:src="@drawable/arrow" />
</RelativeLayout>
</RelativeLayout>
这是我的样式文件,它是button_effect.xml,用于更改相对布局的背景。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/darker_gray" android:state_hovered="true"></item>
<item android:drawable="@drawable/gray_bg"></item>
</selector>
这是我的text_color.xml,用于更改文本的颜色。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#177f75"/>
<item android:color="#152b72"/>
</selector>
答案 0 :(得分:1)
您可以为textview
以及layout
执行此类操作。
这里我使用drawables
表示不同状态 - 按下,悬停和正常。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/book_press" android:state_pressed="true"/> <!-- pressed -->
<item android:drawable="@drawable/book_focused" android:state_focused="true"/> <!-- focused -->
<item android:drawable="@drawable/book_default"/> <!-- default -->
</selector>
而不是drawables
使用你的颜色。希望这会对你有所帮助。
您可以使用xml设置使用Java代码的布局。
答案 1 :(得分:0)
用它来改变悬停时的文字颜色
textview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
//Button Pressed
}
if(event.getAction() == MotionEvent.ACTION_UP){
//finger was lifted
}
return false;
}
});