【发布时间】:2017-02-11 13:19:27
【问题描述】:
您好,我的代码非常简单,我的图片都被压缩了,所以没有人超过 50kb。当我启动我的应用程序时,加载了 1 个图像并且内存使用量约为 42mb,但是当我向下滚动到另一个图像时,每隔一个图像会导致内存使用量增加到 250mb。如何解决?这是我的代码,请我是初学者,所以尽量简单地解释一下。
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class CustomSwip extends PagerAdapter {
private int[] imageResources = {R.drawable.j1, R.drawable.jg2,R.drawable.jg3, R.drawable.jg4, R.drawable.jg5, R.drawable.jg6, R.drawable.jg7, R.drawable.jg8, R.drawable.jg9, R.drawable.jg10, R.drawable.jg11, R.drawable.jg12, R.drawable.jg13, R.drawable.jg14, R.drawable.jg15, R.drawable.jg16};
private Context ctx;
private LayoutInflater layoutInflater;
public CustomSwip(Context c) {
ctx = c;
}
@Override
public int getCount() {
return imageResources.length;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = layoutInflater.inflate(R.layout.activity_custom_swip, container, false);
ImageView imageView = (ImageView) itemView.findViewById(R.id.swip_image_view);
imageView.setImageResource(imageResources[position]);
container.addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view == object);
}
}
【问题讨论】:
-
使用
Glide或Picasso库进行图片下载/缓存。 -
内存使用是什么意思?它是您设备内存中用于您的应用程序的存储内存吗?
-
Android 监视器有一个主窗口,其中包含 logcat、内存、CPU、GPU 和网络监视器。在此窗口中,您可以选择要使用的设备和应用程序进程、终止应用程序、收集 dumpsys 系统信息以及创建正在运行的应用程序的屏幕截图和视频。它是来自 android 监视器的内存