我一直在搜索,搜索和搜索天,但我似乎無法找到我做錯了什麼,所以你是我最後的希望!將ImageView傳遞到下一個活動
我有我的第一個活動與多個圖像。當我按下一個時,我想要打開第二個活動,只顯示點擊的圖像。我試圖將點擊的圖像轉換爲位圖,然後將其與意圖發送,以便我的第二個活動可以檢索它。
這是我第一個Activity的代碼(位圖....'drawable'以紅色下劃線,所以意圖.....'這個,SubActivity.class')。我究竟做錯了什麼?
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView imgview = (ImageView) findViewById(R.id.image);
imgview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Haal de drawable op uit de imageview
Drawable drawable = imgview.getDrawable();
// Zet de drawable om naar een ByteArray zodat we deze kunnen versturen met een intent
// want we kunnen niet zomaar een drawable in een intent gooien
Bitmap bitmap = BitmapFactory.decodeResource(drawable);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
// Maak de intent aan en stuur de ByteArray mee waar de drawable in zit
Intent intent;
intent = new Intent(this,SubActivity.class);
intent.putExtra("witte_tulp_small", b);
startActivity(intent);
}
});
}
}
這是我的第二個活動代碼:
public class SubActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
// Intent uitlezen
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("witte_tulp_small");
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
ImageView image = (ImageView) findViewById(R.id.image);
image.setImageBitmap(bmp);
}
}
在啓動第二個活動時使用包發送圖像數據或與圖像相關的獨特標識 – virendrao 2015-03-03 10:34:53