【发布时间】:2011-04-03 17:07:37
【问题描述】:
我正在尝试向用户显示 SD 卡上的图像列表,允许他们选择多个图像,然后将这些选定的图像存储在一个数组中。你能帮我解决这个问题吗?
公共类 selectimages 扩展了 Activity
{
//---要显示的图像---
整数 [] imageIDs = {
R.drawable.a_1,
R.drawable.a_2,
R.drawable.a_3,
R.drawable.a_4,
R.drawable.a_5,
R.drawable.a_6,
R.drawable.a_7
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.selectimages);
ListView listview = (ListView) findViewById(R.id.listview);
listview.setAdapter(new ImageAdapter(this));
listview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView parent,
View v, int position, long id)
{
Toast.makeText(getBaseContext(),
"pic" + (position + 1) + " selected",
Toast.LENGTH_SHORT).show();
}
});
}
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;
}
}
}
【问题讨论】:
-
我能够将图像从 sd 卡加载到 gridview,但我想不出一种方法来允许选择多个图像。所以现在我尝试使用 listview 加载它们,这就是我遇到问题的地方。
-
如果您发布的代码没有按照您的意愿执行,并解释您希望它执行的操作,那么回答这个问题会更容易。您是否在进行多项选择时遇到问题,甚至根本无法将它们加载到列表视图中?
-
我能够让这段代码工作并显示列表视图中文件夹中的图像。
-
对不起。使用源代码编辑原始消息。
标签: android