0

Android:state_hovered の背景色を変更しようとしていますが、アプリケーションに変更が反映されていません。相対レイアウトがフォーカスされたときにやりたいことは、背景を変更したいのですが、変更したいときです。私の Text View Text の色。しかし、このコードは私にとっては機能していません。変更を提案してください。これは私の 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>
4

2 に答える 2

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あなたの色を使う代わりに。これがあなたを助けることを願っています。

また、Java コードを使用するための xml を使用して、レイアウト重視の設定を行うことができます。

于 2013-07-12T07:46:07.957 に答える
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;
        }
    }); 
于 2013-07-12T11:52:16.590 に答える