본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] ImageViewer Sample Code.

by 돼지왕 왕돼지 2012. 2. 16.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 MediaStore 에 Scan 이 완료된 녀석들을 기준으로, Image 를 보여주는, 아주 심플한 ImageView 에 대한 Sample Code를 올려봅니다.




public class SimpleImageViewer extends Activity {
     private ImageView mImage;
     private Cursor mCursor;
    
     public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.imageviewer);
         
          ListView list = (ListView)findViewById(R.id.listview);
          mImage = (ImageView)findViewById(R.id.imageview);
         
          ContentResolver cr = getContentResolver();
          mCursor = cr.query(Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
          SimpleCursorAdapter Adapter = new SimpleCursorAdapter(this,
                   android.R.layout.simple_list_item_1,
                   mCursor, new String[] { MediaColumns.DISPLAY_NAME },
                   new int[] { android.R.id.text1});
          list.setAdapter(Adapter);
          list.setOnItemClickListener(mItemClickListener);
          startManagingCursor(mCursor);
     }
 
     AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
              mCursor.moveToPosition(position);
              String path = mCursor.getString(mCursor.getColumnIndex(Images.ImageColumns.DATA));
              try {
                   BitmapFactory.Options opt = new BitmapFactory.Options();
                   opt.inSampleSize = 4;
                   Bitmap bm = BitmapFactory.decodeFile(path, opt);
                   mImage.setImageBitmap(bm);
              }
              catch (OutOfMemoryError e) {
                   Toast.makeText(SimpleImageViewerthis,"Image is too big to decode.",0).show();
              }
          }
     };

   @override
   public void onDestory(){
      if ( mCursor != null )
         mCursor.close();
   } 
}

 



처음에 ListView 에는 Cursor 를 이용하여 이름을 표시하도록 하였고,
List 를 클릭하면 Bitmap decode 를 해서 imageview 에 보여주는 방식입니다. 

나머지 View 구성은 모두 쉽게 하실 수 있을거라 믿습니다~

 
로그인 없이 추천 가능합니다. 손가락 꾸욱~


반응형

댓글