2014-03-01 52 views
0

我与图像资源R.drawable.img1一个ImageButton,我要像改变从R.drawable.img1R.drawable.img2R.drawable.img2R.drawable.img1每次我点击ImageButtonImageButton第一次点击/第二次点击?

我是想通过这种方式,但它不工作:

Integer img1 = (Integer) gridlayout.getChildAt(index).getTag(R.drawable.img1); 
Integer img2 = (Integer) gridlayout.getChildAt(index).getTag(R.drawable.img2); 

if(img1 == R.drawable.img1){ 
    //code... 
}else if(img2 == R.drawable.img2){ 
    //code... 
} 

我设置ImageButton的动态与此代码:

ImageButton imgBtn1 = new ImageButton(this); 

imgBtn1.setId(id); 
imgBtn1.setImageResource(R.drawable.img1); 
imgBtn1.setTag(R.drawable.ing1); 
imgBtn1.setScaleType(ImageView.ScaleType.CENTER_CROP); 
imgBtn1.setPadding(5,5,5,5); 

GridLayout.LayoutParams params = new GridLayout.LayoutParams(); 
params.setMargins(-7,-7,-7,-7); 
params.width = fieldSize; 
params.height = fieldSize; 

gridlayout.addView(imgBtn1, index, params); 

谢谢!

+0

是不是你维护一个布尔值false = image1;真正的image2。每次更改onClick按钮时都会触发。 –

+0

我正在使用ImageButtons网格,所以这将会非常复杂。 –

回答

0

我只是给几个解决方案之一,我会在onCreate我会加载imagebutton与一个可用的图像,然后我会创建一个类变量我会设置它为1,我点击的ImageButton,在它的onClick,我会增加我做这个 如果(我%2 == 0){ setImage1;} 其他 {集图像2;}

0

所以,如果你想要每次显示不同的按钮,我会在布局中创建两个按钮,隐藏一个并显示一个按钮。当可见的人被点击时,隐藏它并显示第二个按钮。我认为这会更容易。您也可以使用本地类变量来相应地保持点击次数和切换按钮次数。

+0

可以说我想检查这个按钮上的资源。因此,如果我使用多个按钮(例如网格10x10),则这种方式会变慢。 –

+0

您可以为按钮指定一个可用于查看单击哪个按钮的标识。 – Eenvincible

0
public boolean showingFirst = true; 
if (showingFirst) { 
    //code here for set needed image on first click 
    showingFirst = false; 
} else { 
    //code here for set needed image on Second click 
    showingFirst = true; 
}