最初我從前面的活動中獲得的第一個位圖對象,並與同一活動中的另一個位圖進行比較。我完成了按鈕點擊的位圖比較(稱爲Next),但我遇到了一個問題。當我點擊按鈕(Next)時,比較後一次位圖對象發生變化。我想通過點擊按鈕不斷更改位圖對象(下一步)。以下是我已完成的代碼。比較位圖對象後,如何通過按鈕的點擊來連續獲取下一個位圖對象?
//I use bundle extra for getting bitmap object from previous activity
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
btn_next = (Button) findViewById(R.id.btn_next);
btn_next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Bitmap img_A = BitmapFactory.decodeResource(getResources(), R.drawable.img_a);
Bitmap img_B = BitmapFactory.decodeResource(getResources(), R.drawable.img_b);
Bitmap img_C = BitmapFactory.decodeResource(getResources(), R.drawable.img_c);
Bitmap img_D = BitmapFactory.decodeResource(getResources(), R.drawable.img_d);
if(imagesAreEqual(bmp, img_A)){
bitmap = img_B.copy(Bitmap.Config.ARGB_8888, true);
image.setImageBitmap(bitmap);
}
else if(imagesAreEqual(bmp, img_B)){
bitmap = img_C.copy(Bitmap.Config.ARGB_8888, true);
image.setImageBitmap(bitmap);
}
else if(imagesAreEqual(bmp, img_C)){
bitmap = img_D.copy(Bitmap.Config.ARGB_8888, true);
image.setImageBitmap(bitmap);
}
else{
Toast.makeText(getApplicationContext(), "Not Matched", Toast.LENGTH_SHORT).show();
}
}
});
這是imagesAreEqual(),
boolean imagesAreEqual(Bitmap i1, Bitmap i2)
{
if (i1.getHeight() != i2.getHeight())
return false;
if (i1.getWidth() != i2.getWidth()) return false;
for (int y = 0; y < i1.getHeight(); ++y)
for (int x = 0; x < i1.getWidth(); ++x)
if (i1.getPixel(x, y) != i2.getPixel(x, y)) return false;
return true;
}
這是一個**我太懶惰了。爲我做這個plx!**問題,或者你是否真的嘗試了一些迭代圖像? – Simas 2014-09-15 06:53:33
我爲了更好的理解添加圖片。 – jack 2014-09-15 07:06:44