0

画像のあるテキストビューがあります。ユーザーがテキストビューを押し続けている限りその画像を変更したいのですが、クリックが終わったら古い画像に戻したいのですが、どうすればよいですか?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_simple_list_item_header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#FFFFFF"
    android:focusable="true"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_food_profile_favorite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginRight="50dip"
        android:drawableTop="@drawable/favorite"
        android:text="@string/favorite"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/tv_food_profile_addToBasket"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="50dip"
        android:drawableTop="@drawable/add_to_basket"
        android:text="@string/tv_addToBasket"
        android:textColor="#000000" />

</RelativeLayout>

ジャワ

TextView tv_addToBasket;
tv_addToBasket = (TextView)findViewById(R.id.tv_food_profile_addToBasket);

ノート:

画像を変更できます。どのリスナー (または何か他のもの) を使用する必要があるかを尋ねているだけです。

どうもありがとうございます

編集

tv_addToBasket.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                return false;
            }
        });
4

2 に答える 2

1

画像のあるテキストビューがあります。ユーザーがテキストビューを押し続けている限りその画像を変更したいのですが、クリックが終わったら古い画像に戻したいのですが、どうすればよいですか?

したがって、最初のアイデアはOnTouchListener()andを使用することであり、メソッドをTextView呼び出すだけでそれをtrueに設定し、while が true であるため、背景を変更します。setPressed()

タッチアウトしたときは再度setPressed()メソッドを呼び出してfalseに設定し、背景を変更します。

于 2013-02-16T11:50:23.990 に答える
0

あなたの問題には2つの可能な解決策があります。最初にandroid:clickable="true"属性を設定してから、コードでセレクターまたはハンドルを使用します

1)変更したいドローアブルのセレクターを使用します

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/your_drawable_here" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/your_drawable_here" /> <!-- focused -->
    <item android:drawable="@android:color/transparent" /> <!-- default -->
</selector>

2) テキスト ビューにハンドラーを使用する

TextView tv = (TextView)findViewById(R.id.tv_food_profile_addToBasket);
tv.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // change image per code
    }
})
于 2013-02-16T11:54:25.273 に答える