안녕하세요 저는 이미지가 모두 압축되어있어 아무도 50kb 이상을 가지지 않는 매우 단순한 코드를 가지고 있습니다. 내 응용 프로그램을 시작하면 1 이미지가로드되고 메모리 사용량은 약 42MB이지만 다른 이미지로 스크롤하면 다른 모든 이미지가 메모리 사용량을 최대 250MB까지 증가시킵니다. 그것을 고치는 방법? 여기 내 코드가 있으며 초보자입니다. 그래서 간단하게 설명해보십시오. setImageResource 용 문서에 따르면이미지가 너무 많은 메모리를 가지고 있습니다.
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 Monitor에는 logcat, 메모리, CPU, GPU 및 네트워크 모니터가 포함 된 기본 창이 있습니다. 이 창에서 작업 할 장치 및 응용 프로그램 프로세스를 선택하고, 응용 프로그램을 종료하고, dumpsys 시스템 정보를 수집하고, 실행중인 응용 프로그램의 스크린 샷 및 비디오를 만들 수 있습니다.이 메모리를 안드로이드 모니터에서 가져올 수 있습니다 –