2011-12-15 5 views
0

다음 gridview에서 image.png 이미지는 drawable 폴더에서 가져옵니다. 이제 사진 갤러리의 이미지 또는 캡처 한 카메라 이미지를이 격자에 동적으로 추가하고 싶습니다. 어떻게해야합니까?gridview에서 이미지를 추가하는 방법은 무엇입니까?

모든 예제 코드는 무엇입니까?

HelloGridView 클래스 :

package com.example.HelloGridView; 

import android.app.Activity; 
import android.os.Bundle; 

public class HelloGridView extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    GridView gridview = (GridView) findViewById(R.id.gridview); 
    gridview.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
      Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 

ImageAdapter 클래스 : SD 카드의 폴더에

package com.example.HelloGridView; 

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
mContext = c; 
} 

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

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

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

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
ImageView imageView; 
if (convertView == null) { // if it's not recycled, initialize some attributes 
    imageView = new ImageView(mContext); 
    imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
    imageView.setPadding(8, 8, 8, 8); 
} else { 
    imageView = (ImageView) convertView; 
} 

imageView.setImageResource(mThumbIds[position]); 
return imageView; 
} 

// references to our images 
private Integer[] mThumbIds = { 
R.drawable.sample_2, R.drawable.sample_3, 
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7, 
R.drawable.sample_0, R.drawable.sample_1, 
R.drawable.sample_2, R.drawable.sample_3, 
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7, 
R.drawable.sample_0, R.drawable.sample_1, 
R.drawable.sample_2, R.drawable.sample_3, 
R.drawable.sample_4, R.drawable.sample_5, 
R.drawable.sample_6, R.drawable.sample_7 
}; 
+0

이를 확인 나은 : HTTP : // goo.gl/W2Cfp –

답변

4

넣고 이미지 [이미지]

public class ChannelImageAdapter extends BaseAdapter { 

    int mGalleryItemBackground; 
    private Context mContext; 
    File[] images; 
    File[] files; 
    public ChannelImageAdapter(Context c, int folderID) { 
     mContext = c; 

     File dir = new File(Environment.getExternalStorageDirectory() + "/images"); 
     files = dir.listFiles(); 
     images = files[folderID].listFiles(); 

    } 
    public int getCount() { 
     return images.length; 
    } 
    public Object getItem(int position) { 
     return images[position].getAbsolutePath(); 
    } 
    public long getItemId(int position) { 
     return position; 
    } 
    public String getAlbumName(int folderID) { 
     return files[folderID].getName(); 
    } 
    public View getView(int position, View convertView, ViewGroup parent) { 

     ImageView imageView; 
     //Bitmap bm = BitmapFactory 
     //  .decodeFile(images[position].getAbsolutePath()); 
     if (convertView == null) { 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(100, 100)); 
      imageView.setScaleType(ImageView.ScaleType.FIT_XY); 
      imageView.setPadding(5, 10, 5, 10); 
     } else { 
      imageView = (ImageView) convertView; 
     } 
     imageView.setImageBitmap(Bitmap.decode(images[position].getAbsoluteFile())); 
     return imageView; 

    } 


} 
관련 문제