2

我有以下看法: 在此处输入图像描述

如果我单击任何 ImageButton 以全屏模式显示相应的图像。例如,如果我单击 Black ,它会显示一个图像视图,例如:在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

这是我的 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();
        }

任何帮助或建议?

4

2 回答 2

1

您的图像出现背景更改,因为当您将背景颜色更改为粉红色或任何其他纯色时,您没有重置ImageResource属性,因为您之前的图像也会出现新背景。

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

于 2013-03-16T08:39:17.410 回答
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);

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

于 2013-03-16T08:43:35.650 回答