gpt4 book ai didi

java - 将 ImageView 传递给下一个 Activity

转载 作者:行者123 更新时间:2023-12-02 04:55:20 25 4
gpt4 key购买 nike

我已经找了好几天了,但我似乎找不到我做错了什么,所以你是我最后的希望!

我的第一个 Activity 涉及多个图像。当我按一个时,我希望打开第二个 Activity ,仅显示单击的图像。我正在尝试将单击的图像转换为位图,然后带着 Intent 发送它,以便我的第二个 Activity 可以检索它。

这是我的第一个 Activity 的代码(位图...“drawable”带有红色下划线, Intent 也是如此...“this, 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);
}
});
}
}

这是我的第二个 Activity 中的代码:

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);
}

}

最佳答案

位图是可打包的。您可以将可打包对象放入 bundle 或 Intent 中

Intent intent = new Intent(this, SubActivity.class);
intent.putExtra("bitmap", bitmap);

并在另一端读回

Bitmap bitmap = (Bitmap) getIntent().getParcelableExtra("bitmap");

关于java - 将 ImageView 传递给下一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28829504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com