Android,创建多个位图时createScaledBitmap变慢

o

我正在使用以下代码来创建调整大小的位图,该代码可以正常工作,但是速度很慢。问题是,当我尝试将其用于多个图像时,手机会冻结,直到创建图像为止。

这是我的代码:

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

问题是您正在主线程上进行工作。这意味着它将冻结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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android,创建多个位图时createScaledBitmap变慢

来自分类Dev

旋转时绘制多个位图

来自分类Dev

绘制位图时Android的画布行为变慢

来自分类Dev

如何在单个画布Android中移动多个位图

来自分类Dev

从内存流中读取多个位图

来自分类Dev

合并两个位图android

来自分类Dev

将多个位图图像插入多个工作表

来自分类Dev

多个位图调用不起作用

来自分类Dev

将多个位图导出到一张图片

来自分类Dev

在Android的Scroll View中加载数百个位图图像时出现内存不足错误

来自分类Dev

Android将一组位图合并为一个位图

来自分类Dev

Android将一组位图合并为一个位图

来自分类Dev

创建位图时的相对路径

来自分类Dev

尝试创建位图时发生NullPointerException

来自分类Dev

从照片路径创建位图时,权限被拒绝

来自分类Dev

如何将多个视图合并到一个位图中

来自分类Dev

将多个位图图像上传到php服务器

来自分类Dev

如何使使用多个位图的应用程序更具响应性?

来自分类Dev

在多个线程中使用单个位图Graphics.CopyFromScreen的最有效方法?

来自分类Dev

您可以在一个View方法上绘制多个位图吗?

来自分类Dev

在Android中从longBlob数据创建位图

来自分类Dev

在Android中从longBlob数据创建位图

来自分类Dev

使用Android位图时内存不足

来自分类Dev

加载位图时,Android OutOfMemory错误

来自分类Dev

Android图形-拖动位图时清除画布

来自分类Dev

需要模块并在多个位置创建对象

来自分类Dev

通过VPN在多个位置创建网络

来自分类Dev

android中两个位图之间淡入淡出的最佳方法

来自分类Dev

在ImageView中创建位图时,何时该使用该线程?

Related 相关文章

热门标签

归档