レイアウトにボタンとイメージビューがあります。ボタンをクリックすると、imageview が表示されるはずです。つまり、アルゴリズムは次のとおりです。1) ボタンをクリック 2) imageview が表示される 3) その他のアクション。ただし、常にそのように機能するとは限りません。ボタンをクリックすると、ボタンが黄色のままで何もせず、例外もスローされないことがあります。画面のどこかをタップすると、ステップ 3 に進み、ボタンが再び選択解除されます。
このような奇妙な行動の理由は何でしょうか?
編集:ここに私のxmlがあります
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="fill_parent"
android:id="@+id/water_room_layout" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ViewFlipper android:id="@+id/water_room_flipper"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<include layout="@layout/water_room_wall1" android:id="@+id/first" />
<include layout="@layout/water_room_wall2" android:id="@+id/second" />
<include layout="@layout/water_room_wall3" android:id="@+id/third" />
<include layout="@layout/water_room_wall4" android:id="@+id/fourth" />
</ViewFlipper>
<com.example.room.CustomView
android:id="@+id/customView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</FrameLayout>
これは water_room_wall1.xml です。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/wall1Layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/wall1withkey"
tools:context=".FireRoomActivity"
>
<ImageView
android:id="@+id/zoomed_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/key_zoomed"
android:visibility="gone" />
<Button
android:id="@+id/key"
android:layout_width="30dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="150dp"
android:layout_marginTop="144dp"
android:onClick="zoomImage"
/>
</RelativeLayout>
ここに私の活動があります:
int wall;
RelativeLayout parentLayout;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.water_room_view_flipper);
wall=1;
rl = (CustomView) findViewById(R.id.customView);
vf = (ViewFlipper) findViewById(R.id.water_room_flipper);
}
public void zoomImage(View view)
{
parentLayout = (RelativeLayout)findViewById(R.id.first);
if(view.getId()==R.id.key){
zoomedImage= (ImageView)parentLayout.findViewById(R.id.zoomed_image);
((BitmapDrawable)parentLayout.getBackground()).getBitmap().recycle();
//set Alpha
Drawable wall1withoutkey = getResources().getDrawable(R.drawable.wall1withoutkey);
wall1withoutkey.setAlpha(100);
parentLayout.setBackgroundDrawable(wall1withoutkey);
parentLayout.findViewById(R.id.key).setVisibility(View.INVISIBLE);
}
zoomedImage.setVisibility(View.VISIBLE);
zoomedImage.setClickable(true);
zoomedImage.setOnClickListener(this);}
}