3

以下のスクリーンショットに示すように、url からの画像を表示するビューページャー内に画像ビューがあります。

ここに画像の説明を入力 ただし、画像はいっぱいにする必要があります (ビューページャーのスペース全体を占める必要があります)。しかし、私の場合、親を埋めるようにレイアウトパラメーターを設定しても、画像が中央に表示されます。

画像ビューでレイアウトを返す私のフラグメント:

ImageView image = new ImageView(getActivity());

        ImageLoader imgLoader = new ImageLoader(MainActivity.context);
        imgLoader.DisplayImage(imagePath, new Activity(), image);

        LinearLayout layout = new LinearLayout(getActivity());
        layout.setLayoutParams(new LayoutParams());

        layout.setGravity(Gravity.CENTER);
        layout.addView(image);

        return layout;

ページャーを表示:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="225dp"
            android:background="@color/white"
            android:orientation="vertical" >

            <android.support.v4.view.ViewPager
                android:id="@+id/pager"
                android:layout_width="fill_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
        </LinearLayout>

画像がまだURLからロードされているとき、アニメーションのような進行状況を表示し、ロードされると、画像をimageview内に設定します

if (bitmap != null) {
                imageView.setBackgroundResource(0);
                imageView.setImageBitmap(bitmap);

            } else {
                imageView.setBackgroundResource(R.drawable.view_pager_progress);
                final AnimationDrawable startAnimation = (AnimationDrawable) imageView
                        .getBackground();
                imageView.setScaleType(ScaleType.CENTER);// i tried FIT_XY, dint work
                startAnimation.start();
            }

要約すると、ビューページャー内の画像は、ビューページャー内の完全なスペースを水平方向と垂直方向の両方で埋める必要があります。これを行う方法はありますか?

4

4 に答える 4

0

使用してみてください:

image.setAdjustViewBounds(true);
于 2013-04-30T10:56:27.720 に答える
0

わかった。実際に機能するソリューションは次のとおりです。

        ImageView imageView = new ImageView(context);
        imageView.setLayoutParams(new ViewGroup.LayoutParams(mScreenWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
        imageView.setAdjustViewBounds(true);
        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);

        Drawable drawable = Drawable.createFromPath(Environment.getExternalStorageDirectory() + "/Android/data/" + getPackageName() + 
                "/"+....+".jpg");           
        if(drawable != null)                
            imageView.setImageDrawable(drawable);

        ((ViewPager) container).addView(imageView, 0);


<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/view_pager"
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:background="@android:color/black"
   />
于 2014-08-06T09:22:43.020 に答える