1

表のように列と行で表示できる画像のシンプルなレイアウトを作成したいと考えています。これが可能かどうかは誰にもわかりますか

4

2 に答える 2

0

以下のようにしてみてください。

レイアウトファイル:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
        android:layout_height="match_parent"
     tools:context=".MainActivity" >
<GridView
    android:id="@+id/gridView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:columnWidth="90dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp" 
    android:layout_below="@+id/Linearlayout">
</GridView>
<LinearLayout
    android:id="@+id/Linearlayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="Button" />
    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>
<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/gridView1"
    android:text="TextView" />
  </RelativeLayout>

AdapterClass

     public class ImageAdapter extends BaseAdapter {
  private Context mContext;
// Keep all Images in array
public Integer[] mThumbIds = {
    R.drawable.ic_launcher, R.drawable.ic_launcher,
        R.drawable.ic_launcher, R.drawable.ic_launcher,
        R.drawable.ic_launcher, R.drawable.ic_launcher,
        R.drawable.ic_launcher, R.drawable.ic_launcher
};
// Constructor
public ImageAdapter(Context c) {
    mContext = c;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return mThumbIds.length;
}
@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return mThumbIds[position];
}
@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}
@Override
public View getView(int position, View arg1, ViewGroup arg2) {
    // TODO Auto-generated method stub
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}
}

アダプター クラスを呼び出して、アクティビティで以下のようにデータを GridView にバインドします。

 public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    GridView m_grid=(GridView)findViewById(R.id.gridView1);
    m_grid.setAdapter(new ImageAdapter(getApplicationContext()));
}

}

于 2013-09-06T05:49:09.650 に答える