如何处理大量图片。android应用程序中应该显示哪些缩略图?

如何处理大量图片。android应用程序中应该显示哪些缩略图?,android,Android,我的android应用程序有问题。 我使用的应用程序使用手机/平板电脑的内置摄像头制作图片。由于摄像头的高分辨率,这些图片有时尺寸相当大 现在,我加载应用程序并创建一个listView,其中图片的一个小缩略图位于左侧,右侧是一些文本 我以这种方式创建图片: Bitmap a = BitmapFactory.decodeFile(url); int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,

我的android应用程序有问题。 我使用的应用程序使用手机/平板电脑的内置摄像头制作图片。由于摄像头的高分辨率,这些图片有时尺寸相当大

现在,我加载应用程序并创建一个listView,其中图片的一个小缩略图位于左侧,右侧是一些文本

我以这种方式创建图片:

Bitmap a = BitmapFactory.decodeFile(url);
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
         (float) 66.0, context.getResources().getDisplayMetrics());
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
         (float) 48.0, context.getResources().getDisplayMetrics());
Bitmap b = Bitmap.createScaledBitmap(a, width, height, false);
问题是这一步需要相当长的时间


有没有办法让它更快?

没有办法让它更快,但您不应该阻止UI线程。看

  • 异步任务(以及许多相关问题,如)
  • 鲁卡什

  • 这是我使用的解决方案,取自此处:

    它工作得很好

    byte[] imageData = null;
    
            try     
            {
    
                final int THUMBNAIL_SIZE = 64;
    
                FileInputStream fis = new FileInputStream(fileName);
                Bitmap imageBitmap = BitmapFactory.decodeStream(fis);
    
                imageBitmap = Bitmap.createScaledBitmap(imageBitmap, THUMBNAIL_SIZE, THUMBNAIL_SIZE, false);
    
                ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
                imageData = baos.toByteArray();
    
            }
            catch(Exception ex) {
    
            }
    
    确保在异步或单独的线程任务中执行此操作,以免阻塞UI线程