ScrollView内部的ImageView

时间:2012-02-02 10:37:40

标签: android

我正在开发一个Android项目。我必须处理ScrollViews来滚动图像。但是当我在ImageView内使用ScrollView时,给我的图像不适合UI布局。所以我想我将ScrollView转换为ImageView。 android中是否有任何程序。 Plz帮助我。

6 个答案:

答案 0 :(得分:17)

我找到了一个很好的解决方案,在你的ImageView参数中,只需添加 -

android:adjustViewBounds="true"

答案 1 :(得分:3)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:id="@+id/relativeLayout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:src="@drawable/ic_launcher" 
                android:contentDescription="@string/describe_something_here"/>

        </RelativeLayout>

    </ScrollView>

希望这有帮助。

答案 2 :(得分:0)

如果您想在模拟器屏幕中调整imageview,那么为什么要使用scrollview。 您可以在模拟器屏幕中缩放imageview,如下所示

 LinearLayout linLayout = new LinearLayout(this);

        // load the origial BitMap (500 x 500 px)
        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
               R.drawable.android);

        int width = bitmapOrg.width();
        int height = bitmapOrg.height();
        int newWidth = 200;
        int newHeight = 200;

        // calculate the scale - in this case = 0.4f
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        // createa matrix for the manipulation
        Matrix matrix = new Matrix();
        // resize the bit map
        matrix.postScale(scaleWidth, scaleHeight);
        // rotate the Bitmap
        matrix.postRotate(45);

        // recreate the new Bitmap
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
                          width, height, matrix, true);

        // make a Drawable from Bitmap to allow to set the BitMap
        // to the ImageView, ImageButton or what ever
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);

        ImageView imageView = new ImageView(this);

        // set the Drawable on the ImageView
        imageView.setImageDrawable(bmd);

        // center the Image
        imageView.setScaleType(ScaleType.CENTER);

        // add ImageView to the Layout
        linLayout.addView(imageView,
                new LinearLayout.LayoutParams(
                      LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
                )
        );

        // set LinearLayout as ContentView
        setContentView(linLayout);

希望有所帮助

答案 3 :(得分:-2)

你好我认为你可以像这样解决你的问题

<anyLayout>
   <ScrollView>
        <RelativeLayout>

            <ImageView/>

         </RelativeLayout>

   </ScrollView>

</anyLayout>

在布局中滚动视图工作。

答案 4 :(得分:-2)

<ScrollView>
        <RelativeLayout>

            <ImageView/>

         </RelativeLayout>

   </ScrollView>

这对你有用

答案 5 :(得分:-3)

我找到了一个非常简单的解决方案,您需要做的就是添加

android:src="@drawable/hayhouse"

到布局xml文件中的imageview。