1

雑誌を収納する棚としてアプリケーションのUIを作成する必要があります。背景画像として棚を持つ雑誌のサムネイルで構成されるグリッド要素を使用して、カスタマイズグリッドビューを使用しています。

シェルフ.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <GridView
            android:id="@+id/gridView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:numColumns="4" >
        </GridView>

    </LinearLayout>

item.xml

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:background="@drawable/grid">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="70dp"
            android:layout_height="100dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="41dp"
            android:src="@drawable/book1" />

    </RelativeLayout>

LibraryActivity.java

public class LibraryActivity extends Activity {

    GridView grid = null;
    ArrayList<Integer> image = new ArrayList<Integer>();
    ImageView thumbnail;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.shelf);
        image.add(R.drawable.book1);
        image.add(R.drawable.book2);
        image.add(R.drawable.book3);
        image.add(R.drawable.book4);

        System.out.println("before adapter");
        grid = (GridView) findViewById(R.id.gridView1);
        CustomAdapter adapter = new CustomAdapter(this, R.layout.item);
        grid.setAdapter(adapter);
    }

    public class CustomAdapter extends BaseAdapter {

        Context mContext = null;
        int mitem = 0;
        LayoutInflater mInflater = null;

        public CustomAdapter(Context context, int item) {

            this.mContext = context;
            this.mitem = item;
            this.mInflater = (LayoutInflater) context
                    .getSystemService(LAYOUT_INFLATER_SERVICE);

        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return image.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            if (convertView == null) {

                System.out.println("****CHECKING 2**********");
                convertView = mInflater.inflate(mitem, null);
                System.out.println("****CHECKING 3**********");
                thumbnail = (ImageView) convertView
                        .findViewById(R.id.imageView1);
                System.out.println("****CHECKING 3**********");

            }

            thumbnail.setImageResource(image.get(position));

            return convertView;
        }

    }

}

ただし、このコードを使用すると、雑誌のある棚が表示されるだけです。デバイスの全画面を占有するように空の棚を表示したい。どうやってやるの??シェルフを実装する別の方法はありますか??

4

1 に答える 1

2

Google の Romain Guy が作成したShelvesという素晴らしいプロジェクトがあります。あなたはそれをチェックアウトする必要があります。

于 2012-06-28T12:47:12.077 に答える