私はそれのスクリーンショットを撮りました。奇妙な方法を表示しています:
これがコードです。
GridAdapter:
public class GridViewAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<Uri> mUrls;
// references to our images
public GridViewAdapter(Context c, ArrayList<Uri> images) {
mContext = c;
this.mUrls = images;
}
public int getCount() {
return mUrls.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
ImageView inflatedImageView = (ImageView) mInflater.inflate(R.layout.imageview_amb_background, null);
//ImageView imageView = new ImageView(mContext);
inflatedImageView.setImageURI(mUrls.get(position));
inflatedImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
return inflatedImageView;
}
そして、inflatedImageView
これは次のようなレイアウト インフレートです。
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/bgimages"
android:maxWidth="120dp"
android:padding="5dp">
</ImageView>
一方、xml ファイルに gridView があります。
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="250dp"
android:horizontalSpacing="5dp"
android:numColumns="3"
android:verticalSpacing="5dp" >
</GridView>
したがって、この gridView を拡張し、いくつかの URI (正確には 3 つ) をループに追加します。追加したら、アダプターをグリッドビューに設定します。
ArrayList<Uri> uriFotos = new ArrayList<Uri>();
HashMap<Integer, ListItem> items = xmlList.getItems();
for (int i = 0; i<items.size();i++){
ListItem itemActual = items.get(i);
itemActual.getLogoSrc();
uriFotos.add(Uri.parse(Environment.getExternalStorageDirectory().toString()+rutaFinsCarpetaClient+itemActual.getLogoSrc()));
}
gridViewInflated.setAdapter(new GridViewAdapter(this,uriFotos));
variableContent.addView(gridViewInflated);
画像は正しく「リンク」されています。
variableContent
ScrollView 内の LinearLayout であるため、グリッドはスクロール可能である必要があります。しかし、ご覧のとおり、いくつかのことが起こっています。
- 身長がやばい。おっしゃる通りではない
inflatedImageView
でしょうか。 - スクロールが機能しません。まあ、うまくいきましたが、うまくいくまで指を動かして数回タップする必要があります。スクロールを停止すると、再び反応するまで同じプロセスを繰り返さなければなりません。(解決済み)
皆さんが私を助けてくれることを願っています。多くのレイアウトを変更し、幅と高さを変更しましたが、同じことが起こっています。
gridView に表示される画像は、1200x800px のようなものであることに注意してください。
小さい画像で同じコードを編集します。