0

一連のサムネイル画像を表示する GridView があります。すべて問題ないように見えますが、アイテムをクリックすると、画像の右上部分だけが onitemclicklistener 呼び出しを登録します。左下隅をクリックしても何も起こりません。グリッドビューを多くの画像で埋めると、特定の画像をクリックすると、間違った位置で呼び出しがトリガーされます。

アダプターからの関連コードを次に示します。

imageView = new ImageView(mContext);
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
int pixels = (int) (155 * scale + 0.5f);
imageView.setLayoutParams(new GridView.LayoutParams(pixels, pixels));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);

リスナーのコードは次のとおりです。

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));

gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

Intent intent = new Intent(MobialGrid.this,MobialImageInd.class);
intent.putExtra("image", file[position].getAbsolutePath());
startActivity(intent);
}
});

グリッド xml は次のとおりです。

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gridview"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:columnWidth="160dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:paddingTop="15dp"
android:paddingBottom="15dp"    
android:background="@drawable/dark_bg_repeat"
/>

コメントありがとうございます。

4

1 に答える 1

0

アダプターのイメージビューにリスナーを追加してみてください。役立つ場合があります...

于 2013-08-15T17:56:44.397 に答える