gpt4 book ai didi

android - 在一个 Activity 中显示多个 ImageView

转载 作者:行者123 更新时间:2023-12-03 17:32:11 24 4
gpt4 key购买 nike

基本上,我的 android Activity 显示了一个披萨,其中有 4 个不同的浇头,由 4 个相互重叠的 ImageView 表示,并且它们的可见性设置为消失。有 4 个复选框,选中时通过将其设置为可见来显示相应的 ImageView 。然而,应用程序每次都在模拟器上崩溃,只有当我将 imageview 减少到 2 时, Activity 才能顺利运行。
我设法在没有崩溃的情况下创建了 3 个 ImageView ,但是所有的 ImageView 质量都很低,并且应用程序有非常明显的滞后。那么,如何创建一个像我这样的应用程序,它可以相互显示多个 ImageView ,而不会为了节省内存和延迟而放弃图像质量呢?

这是我的代码:

公共(public)类 MainActivity 扩展 Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CheckBox extracheese = (CheckBox) findViewById(R.id.checkBox1);
CheckBox pineapple = (CheckBox) findViewById(R.id.checkBox2);
CheckBox chicken = (CheckBox) findViewById(R.id.checkBox3);
CheckBox seafood = (CheckBox) findViewById(R.id.checkBox4);


extracheese.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
ImageView extracheesee = (ImageView)findViewById(R.id.imageView2);
if(((CheckBox) v).isChecked()){
extracheesee.setVisibility(View.VISIBLE);
}else{
extracheesee.setVisibility(View.GONE);
}
}
});

pineapple.setOnClickListener(new OnClickListener() {
public void onClick(View vi) {
ImageView extracheeseee = (ImageView)findViewById(R.id.imageView2);
if(((CheckBox) vi).isChecked()){
extracheeseee.setVisibility(View.VISIBLE);
}else{
extracheeseee.setVisibility(View.GONE);

}
}
});
chicken.setOnClickListener(new OnClickListener() {
public void onClick(View vi) {
ImageView extracheeseee = (ImageView)findViewById(R.id.imageView3);
if(((CheckBox) vi).isChecked()){
extracheeseee.setVisibility(View.VISIBLE);
}else{
extracheeseee.setVisibility(View.GONE);
}
}
});

}

}

最佳答案

我猜您正在将全尺寸图像加载到内存中(即使您在较小的 imageViews 中显示它们)?
如果是这样,我想这是你的问题。

您可能想利用 BitmapFactory 的 inSampleSize 将按比例缩小的图像加载到内存中。

在 Android 应用程序中只有几 MB 的内存可供使用,因此在处理图像时需要非常注意这一点。

请参阅此处的文档:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

关于android - 在一个 Activity 中显示多个 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22050994/

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