2013-01-07 3 views
0

SD 카드에서 갤러리보기로 이미지를 표시하고 싶습니다. 코드를 사용하고 있습니다. 드로어 블에서 이미지를 가져 오는 중입니다.하지만 SD 카드로 변경하고 싶습니다.sd 카드에서 갤러리보기까지의 이미지

private Gallery gallery; 
private ImageView imgView; 
int position; 
private Integer[] Imgid = { R.drawable.a_1, R.drawable.a_2, R.drawable.a_3, 
     R.drawable.a_4, R.drawable.a_5, R.drawable.a_6, R.drawable.a_7 }; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    position = 0; 
    imgView = (ImageView) findViewById(R.id.ImageView01); 
    imgView.setImageResource(Imgid[0]); 

    gallery = (Gallery) findViewById(R.id.examplegallery); 
    gallery.setAdapter(new AddImgAdp(this)); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView parent, View v, int position, 
       long id) { 
      imgView.setImageResource(Imgid[position]); 
      GalleryExample.this.position = position; 
     } 
    }); 


    imgView.setOnLongClickListener(new View.OnLongClickListener() { 
     public boolean onLongClick(View v) { 

      AlertDialog alertDialog = new AlertDialog.Builder(
        GalleryExample.this).create(); 
      alertDialog.setTitle("Confirmation"); 
      alertDialog 
        .setMessage("Do you want to set this image as wallaper?"); 
      alertDialog.setButton("Yes", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, 
           int which) { 

          Bitmap bitmap = BitmapFactory.decodeResource(
            getResources(), Imgid[position]); 
          try { 
           GalleryExample.this.setWallpaper(bitmap); 
          } catch (IOException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
          Log.d("Gallery Example", "Image setted."); 

         } 
        }); 

      alertDialog.show(); 
      return true; 
     } 
    }); 

} 

public class AddImgAdp extends BaseAdapter { 
    int GalItemBg; 
    private Context cont; 

    public AddImgAdp(Context c) { 
     cont = c; 
     TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme); 
     GalItemBg = typArray.getResourceId(
       R.styleable.GalleryTheme_android_galleryItemBackground, 0); 
     typArray.recycle(); 
    } 

    public int getCount() { 
     return Imgid.length; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imgView = new ImageView(cont); 

     imgView.setImageResource(Imgid[position]); 
     imgView.setLayoutParams(new Gallery.LayoutParams(100, 100)); 
     imgView.setScaleType(ImageView.ScaleType.FIT_XY); 
     imgView.setBackgroundResource(GalItemBg); 

     return imgView; 
    } 
} 

하지만 Sd 카드에서 이미지를 가져 오려면 어떻게해야합니까?

+0

모든 이미지의 경로를 검색하여 배열에 넣으십시오. 그런 다음 이미지 뷰로 설정하십시오. –

+0

그것은 이미 사업상의 질문입니다. http://stackoverflow.com/questions/2901342/how-to-display-images-from-sd-card-in-a-galleryview. – Shadow

답변

0

시험해보기 ::

이 블로그 게시물은 좋은 예입니다. 그것은 당신에게 어댑터를하는 방법을 보여줍니다 : http://mihaifonoage.blogspot.com/2009/09/displaying-images-from-sd-card-in.html 그러나 나는 BaseAdapter 대신 CursorAdapter를 확장 할 것입니다.

특정 폴더에서 이미지를 가져 오는 방법은 this 링크를 참조하십시오.

희망이 있습니다.

+0

이 링크에서는 sd 카드에있는 모든 이미지를 표시합니다. 특정 폴더에서만 원합니다. 어떻게 할 수 있습니까? – achu

+0

내 편집 된 답변보기 :) – AndroidLearner

+0

ans? – achu

관련 문제