如何在图标下写下应用程序的名称

时间:2013-03-04 17:40:04

标签: android android-layout homescreen

我创建了一个启动器应用程序作为主屏幕,其中有许多图标,每个图标代表一个不同的应用程序。我想知道如何在这些图标下显示每个应用的名称。 这是显示图标的类:

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
            };
}

任何帮助将不胜感激。 感谢

2 个答案:

答案 0 :(得分:0)

使用图像和文本为每个项目创建布局。将此布局设置为列表或gridview的项目。您可以使用文本名称映射图像。因此,在getView中,您可以为每个项目设置文本和图像。

答案 1 :(得分:0)

Chceck这篇文章:

http://www.vogella.com/articles/AndroidListView/article.html#adapterperformance_example

它与ListView有关,但您可以对GridView使用非常类似的方法。阅读有关列表及其性能的整篇文章,以解释它是如何工作的。

简而言之,您需要使用垂直方向对LinearLayout进行充气,并在其中ImageViewTextView。一些灵感:

@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;
}