layoutparams
問題
到ImageView
編程方式創建:錯誤佈局PARAMS設置ImageView的
imageView.setLayoutParams(new LinearLayout.LayoutParams(gallerySize.x, gallerySize.y));
的ImageView的是LinearLayout
裏面,我覺得應該工作,但我得到這個錯誤:
09-30 10:33:24.450: ERROR/AndroidRuntime(5418): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
也許,事實證明這ImageView的活動被配置爲使用不同的佈局縱向和橫向視圖(我用這與XML佈局的佈局土地文件夾內的不同副本)。當它在縱向視圖不執行有問題的代碼行,而不是我執行以下行:
imageView.setLayoutParams(new Gallery.LayoutParams(gallerySize.x, gallerySize.y));
我試圖保持這一行不變,但後來我得到的錯誤:
09-30 10:49:47.450: ERROR/AndroidRuntime(5760): java.lang.ClassCastException: android.widget.Gallery$LayoutParams
縱向和橫向佈局的主要區別在於縱向使用垂直方向的LinearLayout
並且有一個Gallery
小部件(使用該圖像視圖),而有問題的橫向使用水平方向,而ListView
而不是Gallery
。
我很善良迷失在這裏,任何提示將不勝感激。
EDITED
的ImageView的是在這個類實現:
public class ImageAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
Bitmap temp = BitmapFactory.decodeFile(appFolder+"/"+imagesPath[position]);
//productImages[position] = temp;
imageView.setImageBitmap(temp);
if(landscape)
imageView.setLayoutParams(new LinearLayout.LayoutParams(gallerySize.x, gallerySize.y));
else
imageView.setLayoutParams(new Gallery.LayoutParams(gallerySize.x, gallerySize.y));
imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageView.setBackgroundResource(mGalleryItemBackground);
return imageView;
}
}
而且ImageAdapter例如用在這裏:
public onCreate(...) {
...
if(!landscape) {
Gallery gallery = (Gallery) findViewById(R.infoproduto.gallery);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
setSelectedImage(position);
}
});
}
else {
ListView galleryLView = (ListView) findViewById(R.infoproduto.galleryLView);
galleryLView.setAdapter(new ImageAdapter(this));
galleryLView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position, long id) {
setSelectedImage(position);
}
});
}
}
是否需要使用LayoutParams更改圖像的大小 – surendra
PLease show code添加imageview的位置。 – Ronnie
@surendra是的,如果我不使用固定大小的圖片將非常適合「畫廊」。 – IPValverde