У меня есть динамическое значение изображений, которые хранятся в миниатюрах arraylist, которые я хочу показать в галерее. значения строк внутри ArrayList являются изображения пути миниатюр (например /mnt/sdcard/MyApp/Thumbnails/thumb1.png) ....Как загрузить галерею изображений из arraylist android
у меня есть этот код:
class ImageAdapter extends BaseAdapter {
int mGalleryItemBackground;
private Context mContext;
private ArrayList<String> thumbnails = new ArrayList<String>();
public ImageAdapter(Context c, ArrayList<String> thumb) {
mContext = c;
System.out.print("thumbs: " + thumb);
thumbnails = thumb;
}
public int getCount() {
return thumbnails.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 0;
Bitmap bm = BitmapFactory.decodeFile(thumbnails.get(i), options);
imageView.setImageBitmap(bm);
imageView.setLayoutParams(new LayoutParams(150, 150));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
}
и этот код/метод для отображения вида галереи из главного класса:
Gallery gal1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gal1 = (Gallery) this.findViewById(R.id.gallery1);
}
private void setDisplay(){
OnItemClickListener myItemClickListener = new OnItemClickListener() {
@Override
public void onItemClick (AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(Main.this, "" + position, Toast.LENGTH_SHORT).show();
};
};
gal1.setAdapter(new ImageAdapter(this, _paththumb));
}
, как я могу загрузить изображения из ArrayList?
ОБНОВЛЕНО: я использовал свой код zrgui и LogCat сказал:
02-07 12:31:56.046: E/AndroidRuntime(3572): FATAL EXCEPTION: main
02-07 12:31:56.046: E/AndroidRuntime(3572): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.Gallery.setUpChild(Gallery.java:769)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.Gallery.makeAndAddView(Gallery.java:738)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.Gallery.layout(Gallery.java:622)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.Gallery.onLayout(Gallery.java:336)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1238)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.onLayout(LinearLayout.java:1044)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.ScrollView.onLayout(ScrollView.java:1205)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.View.layout(View.java:7035)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.ViewRoot.performTraversals(ViewRoot.java:1045)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.os.Handler.dispatchMessage(Handler.java:99)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.os.Looper.loop(Looper.java:123)
02-07 12:31:56.046: E/AndroidRuntime(3572): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-07 12:31:56.046: E/AndroidRuntime(3572): at java.lang.reflect.Method.invokeNative(Native Method)
02-07 12:31:56.046: E/AndroidRuntime(3572): at java.lang.reflect.Method.invoke(Method.java:521)
02-07 12:31:56.046: E/AndroidRuntime(3572): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-07 12:31:56.046: E/AndroidRuntime(3572): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-07 12:31:56.046: E/AndroidRuntime(3572): at dalvik.system.NativeStart.main(Native Method)
это то, что я имею проблемы сейчас, не могу понять, как изменить GetView(). может кто-нибудь мне помочь? – agony
изменил мой ответ с отредактированным методом – zrgiu
, откуда появилась переменная i в файле thumbnails.get (i)? – agony