Я новичок в разработке для Android, но знаком с концепцией представлений, элементов управления, объектов, макетов XML, C # и т. Д.
Я пытаюсь создать «список» изображений с горизонтальной прокруткой, используя как можно больше встроенных функций. (Я не против использования пользовательских компонентов, но я стараюсь максимально изучить и оптимизировать их перед тем, как что-то совместить).
В настоящее время у меня есть Галерея с привязанным к ней адаптером. Адаптер создает ImageViews, как видно во многих основных уроках. На каждом проходе адаптера я устанавливаю фоновое изображение для ImageView. Я надеялся, что смогу расположить изображение переднего плана так, чтобы оно располагалось поверх фонового изображения в определенной позиции X / Y. К сожалению, я не смог заставить фоновое изображение вести себя так, как мне бы хотелось.
Возможно ли это даже с помощью простой галереи и 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;
}
}