ImageView显示以前的图像视图的数据

时间:2013-03-16 08:25:08

标签: android imageview imagebutton

我有以下观点: enter image description here

如果我点击任何ImageButton在全屏模式下显示相应的图像。例如,如果我点击黑色,它会显示图像视图,如:enter image description here

我也为这样的图像按钮设置了全屏颜色的背景:如果我点击粉红色它会显示纯粉红色:

enter image description here

到目前为止一切正常,如果我先单击黑色按钮,然后我点击粉红色,黑色图像继续进行粉红色背景布局,如下所示:

enter image description here

这是我的问题,我只想要粉红色,而不是前景中的图像;

这是我的XML文件:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#657383" >

<ImageView android:id="@+id/imv"
        android:contentDescription="@string/app_name"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:visibility="gone"
        />

<Button android:id="@+id/home"
    android:contentDescription="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="10dp"
    android:text="@string/Back_Button"
    android:textSize="25sp"
    />


    <RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content">


    <ImageButton android:id="@+id/image1"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:background="#000000"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"/>

    <ImageButton android:id="@+id/image2"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:layout_toRightOf="@+id/image1"
        android:background="#ff0000"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"/>

    <ImageButton android:id="@+id/image3"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:layout_below="@+id/image1"
        android:background="#00ff00"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        />

    <ImageButton android:id="@+id/image4"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:background="#0000ff"
        android:layout_below="@+id/image2"
        android:layout_toRightOf="@+id/image3"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        />

    <ImageButton android:id="@+id/image5"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:background="#FFFF00"
        android:layout_below="@+id/image3"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        />

    <ImageButton android:id="@+id/image6"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:layout_below="@+id/image4"
        android:layout_toRightOf="@+id/image5"
        android:background="#FFA500"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"/>

    <ImageButton android:id="@+id/image7"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:layout_below="@+id/image5"
        android:background="#FFFFFF"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"/>

    <ImageButton android:id="@+id/image8"
        android:contentDescription="@string/hello_world"
        android:layout_width="130dp"
        android:layout_height="95dp"
        android:layout_below="@+id/image6"
        android:background="#F52887"
        android:layout_toRightOf="@+id/image7"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"/>



</RelativeLayout>

我的.Java数据是:

      private OnClickListener myListener = new OnClickListener() {

    @SuppressLint("NewApi")
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub


        try {

            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    iv.setVisibility(View.GONE);
                }
            }, 2500);



            if (v.getId() == R.id.image1) {
                iv.setBackground(null);
                iv.setVisibility(View.VISIBLE);
                iv.setImageResource(R.drawable.ic_launcher);

            } else if(v.getId() == R.id.image2){
                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setImageResource(R.drawable.kids_paint_hands);
            }else if(v.getId() == R.id.image3){

                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setImageResource(R.drawable.play_logo);
            }else if(v.getId() == R.id.image4){

                iv.setBackground(null);
                iv.setVisibility(View.VISIBLE);
                iv.setBackgroundColor(Color.BLUE);
            }else if(v.getId() == R.id.image5){

                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setBackgroundColor(Color.CYAN);
            }else if(v.getId() == R.id.image6){

                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setBackgroundColor(Color.MAGENTA);
            }else if(v.getId() == R.id.image7){

                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setBackgroundColor(Color.WHITE);
            }else if(v.getId() == R.id.image8){

                iv.setBackground(null);

                iv.setVisibility(View.VISIBLE);
                iv.setBackgroundColor(Color.DKGRAY);
                iv.clearFocus();
            }






        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

任何帮助或建议?

2 个答案:

答案 0 :(得分:1)

您的图片显示背景更改,因为当您将背景颜色更改为粉红色或任何其他纯色时,您不会重置 ImageResource 属性,因为之前的图像也会以新的背景显示。< / p>

要解决此问题,您可以将图像显示为背景而不是使用ImageResource,或者您应该删除之前为之前设置的imageResource(例如:iv.setImageResource(任何透明框架))。

答案 1 :(得分:1)

试试这个

第一

ImageResource is different from the background Resource.

ImageResource is the foreground image, background resource is the background one.

你需要这样做

image.setImageResource(android.R.color.transparent);

显示透明图像而不是原始图像