Android Gridview教程 - 示例代码有效吗?

时间:2011-04-25 18:57:40

标签: android

我一直在撞墙 - 任何人都可以帮忙处理代码:

http://developer.android.com/resources/tutorials/views/hello-gridview.html

每次我编写代码时,Eclipse都会给我带来大量不可思议的错误(特别是初学者),但即使我复制并粘贴代码 - 它仍然无法与android 2.2 sdk一起使用。欢迎任何帮助!

其次它还提到将一些样本图像复制到res下的drawable文件夹中,但是有drawable-hdpi,ldpi和mdpi文件夹 - 我应该将图像复制到哪个(或者全部3个?)

提前致谢

2 个答案:

答案 0 :(得分:4)

请参阅我对您的Android教程相关问题的评论。关于图像,您应该将它们复制到所有3或创建一个名为drawable的新目录。让我更详细地解释一下。

每个设备都有密度,如HDPI,LDPI和MDPI(平板电脑甚至更多)。 android的想法是通过转到这些文件夹来使用最适合您设备的图像。如果找不到图像,它将在名为drawable的'generic'文件夹中查找。所以,如果你现在只测试你的逻辑并且不关心外观,只需创建'drawable'文件夹并将你的图像放在那里。

答案 1 :(得分:4)

以下是使用网格视图的工作示例:

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 GridView.OnItemClickListener() 
    {
        public void onItemClick(AdapterView parent, View v, int position, long id) 
        {                
            //Insert what to do when you click on an image.
        }
    });        
}

public class ImageAdapter extends BaseAdapter 
{
    private Context context;

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

    //---returns the number of images---
    public int getCount() {
        return imageIDs.length;
    }

    //---returns the ID of an item--- 
    public Object getItem(int position) {
        return position;
    }

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

    //---returns an ImageView view---
    public View getView(int position, View convertView, ViewGroup parent) 
    {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(context);
            imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5, 5, 5, 5);
        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(imageIDs[position]);
        return imageView;
    }

    Integer[] imageIDs = {
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon
    };
}    

如果您复制并粘贴^^它应该有效,您可能需要导入一些东西(你知道怎么做吗?!)

任何问题只是评论:)