我有几个关于android视图的问题。我是新手,所以如果我的问题看起来很荒谬,请给我正确的提示:)
所以我想做一个记忆游戏。这是我的主布局代码。

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainPanel"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android.background="Color.TRANSPARENT"
    android:gravity="top"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/top_panel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="2dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Blaaaaaa1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Blaaaaaa2" />
    </LinearLayout>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:ems="3"
        android:inputType="textPassword"
        android:text="dsdsdsd"
        android:visibility="invisible" >

        <requestFocus />
    </EditText>

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/top_panel"
        android:paddingBottom="50dp"
        android:paddingTop="5dp"
        android:weightSum="5" >

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:weightSum="5" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_a1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_a2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_a3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_a4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_a5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:weightSum="5" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_b1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_b2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_b3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_b4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_b5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:weightSum="5" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_c1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_c2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_c3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_c4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_c5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:weightSum="5" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_d1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_d2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_d3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_d4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_d5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:weightSum="5" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_e1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_e2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_e3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_e4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/pic_e5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_launcher" />
            </LinearLayout>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </TableRow>
    </TableLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:src="@drawable/pic9214" />

</RelativeLayout>

这是主要活动的代码。
public class MainActivity extends Activity {
    private OnClickListener paSharedOnClickListener = new OnClickListener();
    private ImageView paPreviewView ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        getWindow().setBackgroundDrawableResource(R.drawable.old_paper_r);



        ImageView img;

        img = (ImageView) MainActivity.this.findViewById(R.id.imageView1) ;
        img.setVisibility(-1);
        this.paPreviewView = img;

        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_a1);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_a2);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_a3);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_a4);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_a5);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_b1);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_b2);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_b3);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_b4);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_b5);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_c1);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_c2);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_c3);
        img.setVisibility(-1);
        img = (ImageView) findViewById(R.id.pic_c4);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_c5);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_d1);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_d2);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_d3);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_d4);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_d5);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_e1);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_e2);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_e3);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_e4);
        img.setOnClickListener(paSharedOnClickListener);
        img = (ImageView) findViewById(R.id.pic_e5);
        img.setOnClickListener(paSharedOnClickListener);

    }


    private class OnClickListener implements View.OnClickListener
    {
        private boolean paIsPreviewShowed = false;

        public void onClick(View arg0)
        {

            ImageView img  = (ImageView)arg0;

            Log.v("Click", String.format("ID %s %s", img.getId() , (ImageView) MainActivity.this.findViewById(R.id.imageView1) == img ) );


            if (!this.paIsPreviewShowed)
            {

                this.paIsPreviewShowed = true;

                Animation fadeIn = new AlphaAnimation( 0, 1);
                fadeIn.setDuration(150);


                AnimationSet animationSet = new AnimationSet(true);

                ScaleAnimation scaleAnim = new ScaleAnimation(0,1,0,1,Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);
                scaleAnim.setInterpolator(new LinearInterpolator());
                scaleAnim.setRepeatCount(Animation.ZORDER_NORMAL);
                scaleAnim.setDuration(250);

                TranslateAnimation move = new TranslateAnimation(0, 0, 500,0);
                move.setDuration(250);


                animationSet.addAnimation(fadeIn);
                animationSet.addAnimation(scaleAnim);
                animationSet.setFillAfter(true);





                Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.pic9012);
                if  (paPreviewView.getParent()==null )
                {
                    RelativeLayout top_panel  = (RelativeLayout) MainActivity.this.findViewById(R.id.mainPanel);
                    top_panel.addView(paPreviewView);
                }
                paPreviewView.setImageBitmap(bMap);
                paPreviewView.startAnimation(animationSet);


            }else
            {

                Animation fadeOut = new AlphaAnimation( 1, 0);
                fadeOut.setFillAfter(true);
                fadeOut.setDuration(250);
                paPreviewView.startAnimation(fadeOut);
                this.paIsPreviewShowed = false;

                ((RelativeLayout) paPreviewView.getParent()).removeView(paPreviewView);
            }

                }


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

好的,在创建activiti后的第一步中,我设置了每个卡的onclicklistener(pic_a1,pic_a2…图片5)和图像视图papreviewview到invisible的可见性(我想显示所选卡的图像)。然后当我点击pic_a1是papreviewview显示。这没问题。
我的问题是。
1)在本例的早期版本中,我通过调用
paPreviewView.setVisibility(View.INVISIBLE);


paPreviewView.setVisibility(View.GONE);

但它不能正常工作。因为onClickListener.onClick方法仅从隐藏的paPreviewView ImageView调用。所以我试图从papreviewview中删除onclicklistener,但没有帮助。唯一的解决方案是删除(用于隐藏)和添加(用于显示)从/到主面板的papreviewview。
我的问题是为什么?当papreviewview被隐藏时,为什么papreviewview引发onclick事件?
2)我的第二个问题是。比我为这个例子做的更好的解决方案(我的意思是纸牌游戏)?
非常感谢你的任何想法:)

最佳答案

在这种情况下使用的正确功能是:

paPreviewView.setClickable(false);

09-25 15:22