我创建了一个启动器应用程序作为主屏幕,其中有许多图标,每个图标代表一个不同的应用程序。我想知道如何在这些图标下显示每个应用的名称。 这是显示图标的类:
ImageAdapter.java
package com.seniorDesign.main.project;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
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 = new ImageView(mContext);
//imageView.setBackgroundColor(Color.BLACK);
imageView.setLayoutParams(new GridView.LayoutParams(250,200));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setPadding(8,8,8,8);
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.phone, R.drawable.calendar, R.drawable.calculator,
R.drawable.gallery, R.drawable.browser, R.drawable.email,
R.drawable.map, R.drawable.sms, R.drawable.camera, R.drawable.contacts,
R.drawable.notepad_icon
};
}
任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
使用图像和文本为每个项目创建布局。将此布局设置为列表或gridview的项目。您可以使用文本名称映射图像。因此,在getView中,您可以为每个项目设置文本和图像。
答案 1 :(得分:0)
Chceck这篇文章:
http://www.vogella.com/articles/AndroidListView/article.html#adapterperformance_example
它与ListView
有关,但您可以对GridView
使用非常类似的方法。阅读有关列表及其性能的整篇文章,以解释它是如何工作的。
简而言之,您需要使用垂直方向对LinearLayout进行充气,并在其中ImageView
和TextView
。一些灵感:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(R.layout.rowlayout, null);
ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) rowView.findViewById(R.id.text_view);
viewHolder.image = (ImageView) rowView.findViewById(R.id.image_view);
rowView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) rowView.getTag();
holder.text.setText(names[position]);
holder.image.setImageResource(mThumbIds[position]);
return rowView;
}