0

콘텐츠 리졸버를 사용하여 그리드보기에 이미지 엄지 손가락을 표시하고 있습니다.장치에서 이미지 엄지의 로딩 속도를 높이는 방법

질문 : 내 장치에서 50 개의 이미지로 제대로 실행되지만 다른 장치에서는 중단됩니다. 로드 시간을 줄이고 앱 속도를 어떻게 높일 수 있습니까?

내 활동하는 나는 다음과 같이 기본 어댑터가 사용하는 엄지 손가락을 표시하고

public class CustomGallaryViewActivity extends Activity { 

Context mContext; 

ArrayList<ImageItem> imageList; 
private int listCount; 
private ImageAdapter imageAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_custom_gallary_view); 


    mContext=this; 
    imageList=CreateImageThumbnails.createThumbnails(CustomGallaryViewActivity.this); 
    listCount=imageList.size(); 
    GridView imageGrid=(GridView)findViewById(R.id.grid_view); 

    imageAdapter=new ImageAdapter(); 
    imageGrid.setAdapter(imageAdapter); 

}

공용 클래스 ImageAdapter는 {

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return imageList.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder holder; 

    if(convertView==null){ 
     holder=new ViewHolder(); 

     LayoutInflater infalter=(LayoutInflater)mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
     convertView=infalter.inflate(R.layout.galleryitem,null); 
     holder.imageview=(ImageView) convertView.findViewById(R.id.thumbImage); 

     convertView.setTag(holder); 
    } 
    else{ 
     holder=(ViewHolder) convertView.getTag(); 
    } 

    holder.imageview.setId(position); 
    holder.imageview.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      int id = v.getId(); 
      Log.d("IDIDID",""+id); 
      ImageItem item = imageList.get(id); 
      Intent intent=new Intent(mContext,FullScreenImageActivtiy.class); 
      //intent.putExtra("ID",item.id); 
      intent.putExtra("ImageItemVal",new int[]{item.id,item.imgNumber,listCount,id}); 
      startActivity(intent); 

     } 
    }); 

    ImageItem item=new ImageItem(); 

    item=imageList.get(position); 

    holder.imageview.setImageBitmap(item.img); 

    return convertView; 
} 

}

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.custom_gallary_view, menu); 
    return true; 
} 

class ViewHolder { 
    ImageView imageview; 
} 
BaseAdapter를 확장

}

난 그냥이 코드와 문제에 의해 반환되는 커서 오브젝트가 해결 통과

답변

0

다음 클래스

public class CreateImageThumbnails{ 

public static ArrayList<ImageItem> createThumbnails(Activity refActivtiy){ 

    ArrayList<ImageItem> thumbNails=new ArrayList<ImageItem>(); 

    final String[] columns = { MediaStore.Images.Thumbnails._ID }; 
    final String orderBy = MediaStore.Images.Media._ID; 
    //Cursor imageCursor=refActivtiy.managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,columns,null,null,orderBy); 
    Cursor imageCursor = refActivtiy.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,null, null,orderBy); 
    if(imageCursor!=null){ 
    int count=imageCursor.getCount(); 
    Log.d("Count Vlaue",""+count); 
    int image_column_index=imageCursor.getColumnIndex(MediaStore.Images.Media._ID); 

    for(int i=0;i < count;i++){ 
     imageCursor.moveToPosition(i); 
     int id=imageCursor.getInt(image_column_index); 

     Log.d("Image ID : ",""+id); 
     ImageItem imageItem=new ImageItem(); 

     imageItem.id=id; 
     imageItem.img = MediaStore.Images.Thumbnails.getThumbnail(
       refActivtiy.getApplicationContext().getContentResolver(), id, 
       MediaStore.Images.Thumbnails.MICRO_KIND, null); 
     thumbNails.add(imageItem); 

    } 

    } 

    return thumbNails; 
} 

}를 사용하여 엄지 손가락의 목록을 작성하고 ...

final String[] columns = { MediaStore.Images.Thumbnails._ID }; 
    final String orderBy = MediaStore.Images.Media._ID; 
    imageCursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,null, null,orderBy);