我在我的项目中使用图片库,我可以用我的适配器将图像充气到图库中。如果我想在图像的底部添加文本(2-3个单词作为图像的名称),我应该怎么做?有没有关于它的纽约参考资料?
非常感谢。
发布于 2012-04-25 21:03:06
首先:创建包含文本视图和图像视图的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",
}; } }希望这对你有所帮助
发布于 2012-04-25 20:53:56
从适配器的getView方法创建并返回一个自定义视图对象。您可以将包含ImageView和TextView的XML扩展到具有垂直方向的LinearLayout中。
https://stackoverflow.com/questions/10315951
复制相似问题