嗨我有一个自定义列表视图,其中包含图像和textview,我正在使用适配器listview的getview中的处理程序来加载图像,当所有图像都加载时,然后我再次更改手机的方向图像下载,我想阻止这一个,即当所有图像都加载,当方向改变时,它不会有效。
public View getView(final int position, View convertView, ViewGroup parent) {
final String imageurl = imageUrls.get(position);
LayoutInflater inflate = LayoutInflater.from(context);
View v = inflate.inflate(rowResId, parent, false);
final ImageView image = (ImageView) v.findViewById(R.id.image);
final ProgressBar progress = (ProgressBar) v
.findViewById(R.id.progress);
image.setVisibility(View.GONE);
progress.setVisibility(View.VISIBLE);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
System.out.println("Set image at" + position
+ " Image Name :: " + imageurl);
progress.setVisibility(View.GONE);
image.setImageBitmap((Bitmap) message.obj);
image.setVisibility(View.VISIBLE);
}
};
Thread thread = new Thread() {
@Override
public void run() {
Bitmap drawable = LoadImageFromWebOperations(imageurl);
Message message = handler.obtainMessage(1, drawable);
handler.sendMessage(message);
}
};
thread.start();
return v;
}
答案 0 :(得分:2)
您可以使用位图图像列表。首先将列表中的所有Bitmap设置为null。并且在方法getView中检查位图列表位置中的位图是否为空。如果为null,则显示progressBar并下载图像并将图像保存在列表中。
例如,图像列表名称是图像。然后getView方法中的代码如下:
public View getView(final int position, View convertView, ViewGroup parent) {
final String imageurl = imageUrls.get(position);
LayoutInflater inflate = LayoutInflater.from(context);
View v = inflate.inflate(rowResId, parent, false);
final ImageView image = (ImageView) v.findViewById(R.id.image);
final ProgressBar progress = (ProgressBar) v
.findViewById(R.id.progress);
if(images.get(position) != null) {
progress.setVisibility(View.GONE);
image.setImageBitmap(images.get(position));
image.setVisibility(View.VISIBLE);
} else {
image.setVisibility(View.GONE);
progress.setVisibility(View.VISIBLE);
final Handler handler = new Handler() {
@Override
public void handleMessage(Message message) {
System.out.println("Set image at" + position
+ " Image Name :: " + imageurl);
progress.setVisibility(View.GONE);
image.setImageBitmap((Bitmap) message.obj);
image.setVisibility(View.VISIBLE);
}
};
Thread thread = new Thread() {
@Override
public void run() {
Bitmap drawable = LoadImageFromWebOperations(imageurl);
images.add(position, drawable);
Message message = handler.obtainMessage(1, drawable);
handler.sendMessage(message);
}
};
thread.start();
}
return v;
}
希望你明白我的意思。 :)
答案 1 :(得分:1)
只需对您的Activity
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
答案 2 :(得分:0)
在活动的活动代码中的android清单文件中添加此属性。那时不需要任何代码。
机器人:configChanges = “取向| keyboardHidden”
这是对您的问题的回答,但对您的问题更有利的是@gypsicoder建议的
希望这有帮助:)
不要忘记接受对你有帮助的答案。这样其他人也可以得到正确的参考。