如何在ImageView上显示压橙色?

时间:2011-11-15 06:55:34

标签: android

我将rel布局绝对大小调整为50dp,只显示图像外部的部分,因此图像阻挡了按下状态...如何获得我想要的效果?而且仅供参考,将背景直接放在ImageView上没有任何改变;压制的橙色仍然在下面。

<RelativeLayout
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="10dp"
                    android:background="@drawable/btn_orange"
                    android:clickable="true" >
                    <ImageView
                        android:id="@+id/preview_plus"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/plus_button" /> 
                </RelativeLayout>

和btn_orange.xml:

   <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <color android:color="#66ffb300"/> 
    </item>
</selector>

2 个答案:

答案 0 :(得分:1)

试试这个......

<RelativeLayout
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="10dp"
                    android:background="@drawable/btn_orange"
                    android:clickable="true" >
                    <ImageView
                        android:id="@+id/preview_plus"
                        android:layout_width="45dp"
                        android:layout_height="45dp"
                        android:background="@drawable/plus_button" /> 
                </RelativeLayout>

答案 1 :(得分:1)

我必须说你可以使用(触摸列表器) 这是你如何使用触摸列表器

image=(ImageView)findViewById(R.id.image);

首先找到你的图像

为您的图片添加触摸列表器

 image.setOnTouchListener(image_onTouch);

//添加一个名为image_onTouch的触摸方法

OnTouchListener image_onTouch=new OnTouchListener(){
    @Override
    public boolean onTouch(View arg0,MotionEvent arg1){
        int iAction=arg1.getAction();

        if(iAction==0){
            image.setImageResource(R.drawable.image1);
        }
        else{
            image.setImageResource(R.drawable.image2);
        }
        return false;
    }
};

//图像1是您想要2次点击的图像 和图像2是触摸该图像时的图像,您必须制作另一个图像,其中您想要显示背景颜色并在代码中使用它