Android,createScaledBitmap创建多个位图时速度较慢
我正在使用下面的代码创建一个调整大小的位图,代码工作正常,但速度非常慢。问题是,当我尝试将其用于多个图像时,手机会冻结,直到创建图像为止 这是我的密码:Android,createScaledBitmap创建多个位图时速度较慢,android,image,file,bitmap,Android,Image,File,Bitmap,我正在使用下面的代码创建一个调整大小的位图,代码工作正常,但速度非常慢。问题是,当我尝试将其用于多个图像时,手机会冻结,直到创建图像为止 这是我的密码: Bitmap bitmap = null; File imgFile = new File(my_pic_file); if(imgFile.exists()) { bitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); Bitmap resizedBitmap = B
Bitmap bitmap = null;
File imgFile = new File(my_pic_file);
if(imgFile.exists()) {
bitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, 300, 200, false);
first_image.setImageBitmap(resizedBitmap);
}
问题是您正在主线程上执行工作。这意味着它将冻结UI,直到所有处理完成。您可以通过使用线程或异步任务来修复此问题
private class LoadImageTask extends AsyncTask<String, Void, Bitamp> {
private ImageView mImageView = null;
public LoadImageTask(ImageView imageView) {
mImageView = imageView;
}
protected Bitmap doInBackground(String... file) {
Bitmap bitmap = null;
Bitmap resizedBitmap = null;
File imgFile = new File(file);
if(imgFile.exists()) {
bitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
resizedBitmap = Bitmap.createScaledBitmap(bitmap, 300, 200, false);
}
return resizedBitmap;
}
protected void onPostExecute(Bitmap result) {
if (result != null && mImageView != null) {
mImageView.setImageBitmap(result);
}
}
new LoadImageTask(first_image).execute(my_pic_file);