在列表视图android应用程序中设置图像的问题

时间:2011-07-23 06:14:46

标签: android android-listview

我是一名新的Android开发人员。我创建了一个测验应用程序,我需要在列表视图中连续显示问题。我的所有问题和选择都是图像。如何在列表视图中设置图像。我想只在列表视图中设置图像而不是任何文本。请帮帮我。

4 个答案:

答案 0 :(得分:2)

在主xml文件中创建一个listview,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/masterLayout"
 android:orientation="vertical" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content">
    <ListView
     android:id="@+id/list"
     android:cacheColorHint="#00000000"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>
</LinearLayout>

然后创建另一个名为child_layout的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content">
     <ImageView android:id="@+id/image"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"/>
</RelativeLayout>

然后在您的活动类中初始化您的列表视图:

ListView listView1 = (ListView)findViewById(R.id.list);

创建一个扩展baseadapter的类,并以您需要的方式修改所有必需的方法(创建将drawable列表作为参数并创建一个设置为提供列表的全局变量的构造函数)。然后在您的活动类中执行以下操作:

ArrayList<Drawable> images = new ArrayList<Drawable>();
// add to the list here
CustomListAdapter adapter = new CustomListAdapter(images);
listView1.setAdapter(adapter);

在customlistadapter类的getView()函数中执行此操作:

public View getView(int position, View convertView, ViewGroup parent)
{
    Drawable image = images.get(position);
    if (convertView == null)
    {
        LayoutInflater infalInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.child_layout, null);
    }
    ImageView imageView = (ImageView)convertView.findViewById(R.id.image);
    imageView.setBackgroundDrawable(image);

    return convertView;
}

ListView项目单击侦听器:

listView1.setOnItemClickListener(new ListView.OnItemClickListener()
{
    public void onItemClick(AdapterView<?> listView, View itemView, int position, long itemId)
    {
        String message = "example text: " + position;
        Toast.makeText(MyActivity.this, message, Toast.LENGTH_SHORT).show();
    }
});

答案 1 :(得分:0)

您需要创建自定义ListAdapter。 API samples中给出了一个示例。只需添加一个ImageView作为自定义适配器的布局,你就应该开始了。搜索更多示例。

答案 2 :(得分:0)

获取一个主要布局xml文件,你必须在其中给出。 像这样的东西

     <List
       android:width="wrap_content"
       android:height="wrap_content"
       android:id="@+id/list"
  />

并使用

获取另一个布局xml文件
<ImageView
     android:width="wrap_content"
     android:height="wrap_content"/>

在适配器中膨胀包含ImageView的此xml文件。这样你就可以在列表中获得图像

答案 3 :(得分:0)

look at this tutorial...并将textview替换为图像视图并将图像设置为它。

also have a look at this question...

希望这会有所帮助。

感谢。