14

私はここの新しいユーザーであり、カスタムスクロールビューを要求する作業中のAndroidアプリです(以下のリンクに表示)。最初の画像を除いて、グリッドビューに非常に似ています。グリッドビューと一緒に大きなイメージビューを追加して使用しようとしました。しかし、それは失敗します。誰にも何か提案はありますか?

ここに画像の説明を入力

4

1 に答える 1

9

以下のコードを使用して、次の画像を取得できます。 ここに画像の説明を入力

私はこのブログにコードを移動しています:

// please check this part.
            @Override
            public View getView(int arg0, View arg1, ViewGroup arg2) {
                ImageView imageView;
                if(arg1==null){
                    imageView = new ImageView(DemoGridViewActivity.this){
                        @Override
                        protected void onMeasure(int widthMeasureSpec,
                                int heightMeasureSpec) {
                            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
                            setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
                        }
                    };
                }else{
                    imageView = (ImageView) arg1;
                }

                imageView.setLayoutParams(new GridView.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
                imageView.setBackgroundColor(Color.BLUE);
                imageView.setScaleType(ScaleType.FIT_XY);
                Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//according to the position return proper imageview with bitmap
//for case 0 - top-left part
//for case 1 - top-right
//for case 5 - bottom-left
//for case 6 - bottom-right


                switch(arg0){
                case 0:
                    imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth()/2, bitmap.getHeight()/2));
                    imageView.setBackgroundColor(Color.RED);
                    return imageView;
                case 1:
                    imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, 0, bitmap.getWidth()/2, bitmap.getHeight()/2));
                    imageView.setBackgroundColor(Color.GREEN);
                    return imageView;
                case 5:
                    imageView.setImageBitmap(Bitmap.createBitmap(bitmap, 0, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2));
                    imageView.setBackgroundColor(Color.YELLOW);
                    return imageView;
                case 6:
                    imageView.setImageBitmap(Bitmap.createBitmap(bitmap, bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, bitmap.getHeight()/2));
                    imageView.setBackgroundColor(Color.MAGENTA);
                    return imageView;
                default:
                    imageView.setImageResource(R.drawable.ic_launcher);
                    return imageView;
                }
            }

        }
    }


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>
于 2012-06-20T03:09:15.953 に答える