Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 回收站是拉吉吗?_Java_Android_Android Recyclerview - Fatal编程技术网

Java 回收站是拉吉吗?

Java 回收站是拉吉吗?,java,android,android-recyclerview,Java,Android,Android Recyclerview,我将按照本教程学习RecyclerView。本教程将从drawable文件夹加载图像。当我做同样的操作时,应用程序的内存就用完了。所以我做了一些改变来调整图像的大小 @Override public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, int i) { viewHolder.title.setText(galleryList.get(i).getImage_title()); viewHolder.img.

我将按照本教程学习RecyclerView。本教程将从drawable文件夹加载图像。当我做同样的操作时,应用程序的内存就用完了。所以我做了一些改变来调整图像的大小

@Override
public void onBindViewHolder(MyAdapter.ViewHolder viewHolder, int i) {
    viewHolder.title.setText(galleryList.get(i).getImage_title());
    viewHolder.img.setScaleType(ImageView.ScaleType.CENTER_CROP);
    viewHolder.img.setImageResource((galleryList.get(i).getImage_ID()));
}
将第三行更改为此

viewHolder.img.setImageDrawable(scaleImage(galleryList.get(i).getImage_ID(), ScaleFactor));
并将scaleImage定义为

private Drawable scaleImage(int imageId, float scaleFactor)
{
    Drawable image = context.getResources().getDrawable(imageId);

    if ((image == null) || !(image instanceof BitmapDrawable)) {
        return image;
    }

    Bitmap b = ((BitmapDrawable)image).getBitmap();

    int sizeX = Math.round(image.getIntrinsicWidth() * scaleFactor);
    int sizeY = Math.round(image.getIntrinsicHeight() * scaleFactor);

    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, sizeX, sizeY, false);

    image = new BitmapDrawable(context.getResources(), bitmapResized);

    return image;
}

但当我滚动时,RecyclerView会延迟,直到它加载接下来的行,我想这是因为我分别加载每个图像,然后调整其大小。有没有一种方法可以不同步地执行此操作?

这已经成为了一个问题,因为您正在调整图像的大小,这是一个繁重的过程。 尝试异步调整图像大小或使用图像加载程序库

有一些有用的库可用于加载图像,如


另外,您可以看到这个

glide可以用于在设备上加载图像吗?是的,请阅读这个。glide有许多加载图像的方法,您可以从url、文件和可绘图文件加载图像。