2016-03-30 13 views
0

ギャラリーから画像をピックアップしてその間に画像ビューを設定した後、黒い画面が4〜5秒間表示され、 imageviewしかし、その黒い画面を処理する方法。ギャラリーのコードを開くにはギャラリーから画像をピックしてその間に画像ビューを設定した後、黒い画面が4〜5秒間表示されます

Intent intent = new Intent(); 
       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 
       startActivityForResult(Intent.createChooser(intent, 
         "Select Picture"), 1); 

を下回っている私は、ArrayListの中でそのイメージのパスを格納して、以下のようなGalleryGridImageAddAdapterをリロードしています -

​​

----------- -------- GalleryGridImageAddAdapter.class -----------

public class GalleryGridImageAddAdapter extends ArrayAdapter<String> { 

    Context mContext; 
    ArrayList<String> imgList ; 

    public GalleryGridImageAddAdapter(Context context, int resource, ArrayList<String> alist) { 
     super(context, resource, alist); 
     mContext = context; 
     imgList = alist; 

    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflator = ((android.app.Activity) mContext) 
       .getLayoutInflater(); 
     View row = convertView; 
     UserHolder holder = null; 

     if (row == null) { 
      row = inflator.inflate(R.layout.template_gallery_image, parent, 
        false); 
      holder = new UserHolder(); 
      holder.image = (ImageView) row.findViewById(R.id.image); 
      holder.tv_delete_image = (TextView) row.findViewById(R.id.tv_delete_image); 
      row.setTag(holder); 
     } else { 
      holder = (UserHolder) row.getTag(); 
     } 

     holder.tv_delete_image.setVisibility(View.GONE); 

     holder.image.getLayoutParams().width = GalleryImagesActivity.imgWidth; 
     holder.image.getLayoutParams().height = GalleryImagesActivity.imgHeight; 

     File sel = new File(imgList.get(position)); 
     Bitmap bitmap = BitmapFactory.decodeFile(sel.getAbsolutePath()); 
     Bitmap resized = Bitmap.createScaledBitmap(bitmap,100,75, true); 
     holder.image.setImageBitmap(resized); 

     bitmap = null; 
     resized = null; 
     return row; 
    } 



    static class UserHolder { 

     ImageView image; 
     TextView tv_delete_image; 
    } 


} 
+0

理解するためのコードを記入してください –

+0

あなたはどのデバイスを使用していますか?デバイスは遅れていますか? –

答えて

0

neを作成して設定する代わりに毎回アダプタオブジェクトをグリッドビューに追加します。 adapter.notifydatasetchanged()を使用します。これは遅れを減らすことができる。これを試して。それは助けるかもしれない。

+0

同じ問題に直面しています。 –

関連する問題