我在我的项目中使用照片库,我可以用我的适配器将图像膨胀到画廊中。如果我想在图像底部添加文本(2-3 个单词作为图像名称)我应该怎么做?有任何参考吗?
非常感谢。
getView
从适配器的方法创建并返回一个自定义视图对象。ImageView
您可以对包含一个和一个TextView
内部LinearLayout
具有垂直方向的 XML 进行膨胀。
首先:创建具有 textview 和 imageview 的 gallery_items 布局,
然后你必须使用 ViewHolder 类在 getView 方法中膨胀布局,
如下 :
public class GalleryPhotoWithText extends Activity {
private Gallery galleryView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
galleryView = (Gallery)findViewById(R.id.galleryid);
galleryView.setAdapter(new ImageAdapter(this));
}
public class ImageAdapter extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater=null;
public ImageAdapter(Activity a) {
activity = a;
inflater = (LayoutInflater)activity.getSystemService
(Context.LAYOUT_INFLATER_SERVICE); }
public int getCount() {
return data.length; }
public Object getItem(int position) {
return position; }
public long getItemId(int position) {
return position; }
public class ViewHolder{
public TextView text;
public ImageView image; }
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.gallery_items, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.textView1);
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder); }
else
holder=(ViewHolder)vi.getTag();
holder.text.setText(name[position]);
final int stub_id=data[position];
holder.image.setImageResource(stub_id);
return vi; }
private int[] data = {
R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4,
};
private String[] name = {
"first pic name", "second pic name",
"third pic name", "fourth pic name",
}; } }
希望这有帮助