【发布时间】:2012-01-29 06:44:23
【问题描述】:
我是 Android 开发新手,但熟悉视图、控件、对象、XML 布局、C# 等概念。
我正在尝试使用尽可能多的本机功能创建一个水平滚动的图像“列表”。 (我并不反对使用自定义组件,但我会在拼凑一些东西之前尽可能多地学习和优化。)
我目前有一个带有适配器的画廊。正如许多基本教程中所见,适配器正在创建 ImageViews。在适配器的每一次传递中,我都在为 ImageView 设置背景图像。我希望我能够将前景图像放置在特定 X/Y 位置的背景图像之上。不幸的是,我还没有完成让背景图像按照我想要的方式运行的地步。
这甚至可以通过简单的 Gallery 和 ImageView 实现吗?或者,我是否需要构建某种自定义控件(可能使用嵌套布局?)并在适配器的每次迭代中使用该控件?
任何帮助将不胜感激。
这就是我所看到的......
http://philaphan.com/public/stackoverflow/gallery1.png
...以及我想看到的...
http://philaphan.com/public/stackoverflow/gallery2.png
这是我的代码:
public class MyAdapter extends BaseAdapter
{
private Context mContext;
public MyAdapter(Context c)
{
mContext = c;
}
public int getCount()
{
return App.myList.size();
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
String imagePath = App.myList.get(position).thumbnail;
ImageView i = new ImageView(mContext);
i.setLayoutParams(new Gallery.LayoutParams(150, 150));
i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
i.setBackgroundResource(R.drawable.image_bk5);
//i.setBackgroundColor(Color.BLACK);
File f = new File(imagePath);
if (!f.exists())
{
i.setImageResource(R.drawable.image_missing);
}
else
{
Bitmap bmp = BitmapFactory.decodeFile(imagePath);
i.setImageBitmap(bmp);
}
return i;
}
}
【问题讨论】:
-
请不要在 Stack Overflow 上使用称呼或试图绕过它们的删除 (etiquette)。谢谢。
-
@Kev - 您如何在每条消息下方添加简短回复?我看到的只有“链接”、“编辑”和“标志”,以及底部添加另一个答案的按钮。我如何回复试图帮助我的人?至于我的问题,我仍然很难让它工作?
-
在获得 50 代表之前,您可以评论自己的帖子,但不能评论其他人的帖子。您根本无法发表评论的原因是因为您不断创建新的未注册帐户,每个帐户都不同,我必须不断合并它们。我怀疑这是因为您一直在清除 cookie 或每次都从不同的机器上发布。我建议在 SO 上注册一个帐户以阻止这种情况发生。
-
感谢您为我添加 cmets 功能所做的一切,Kev。
标签: android image background gallery imageview