Android ImageView无法使用ScrollView

时间:2014-02-18 04:35:46

标签: android android-layout imageview scrollview horizontalscrollview

在搞乱我的应用时,我想让用户放大和缩小特定ImageViews的方式是必须包含的功能。

所以我继续前进并添加到图片下方的ZoomControls组件中。

{I}我尝试使用ImageView放大和缩小ZoomControls实际上是ImageViews内的FrameLayout分隔(将图像叠加在一起) 。 FrameLayout位于ScrollView内,ScrollView位于HorizontalScrollView内。这允许在上下左右滚动。

所有这一切都很好。但是添加ZoomControls并缩放8张图片,ImageViews按照他们的说法进行操作并放大或缩小,但当我尝试向左/向右上滚动时,我要么当我知道他们有更多的图像可供查看时,快速停止或根本没有互动。

我认为这可能与我的XML层次结构有关... 但也可能是我缩放的方式。 这是代码......

XML:

<RelativeLayout 
    android:id="@+id/layout_main" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="#ffffff"
    android:layout_marginTop="5dp" >


    <HorizontalScrollView
        android:id="@+id/scrollview_horizontal" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:scrollbars="none"
        android:background="#07000000" >

        <ScrollView 
            android:id="@+id/scrollview_vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#222222"> 

                <ImageView
                android:id="@+id/imageview_1"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />

                    <ImageView
                android:id="@+id/imageview_2" 
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />

                    <ImageView
                android:id="@+id/imageview_3"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />       

                <ImageView
                android:id="@+id/imageview_4"
                android:contentDescription="@string/imageview_info"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:visibility="invisible" />

                <ImageView
                android:id="@+id/imageview_5"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />

                <ImageView
                android:id="@+id/imageview_6"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />

                <ImageView
                android:id="@+id/imageview_7"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible" />

                <ImageView
                android:id="@+id/imageview_legend"
                android:contentDescription="@string/imageview_info"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible"
                android:layout_marginTop="1dp" />

    </FrameLayout>
    </ScrollView>
 </HorizontalScrollView>

 </RelativeLayout>

抱歉直接粘贴代码混乱。下面是控制ZoomControl的代码:

private void handleZoomControls() {
    zoomControls_Radar.setOnZoomInClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {


            float x = imageview_1.getScaleX();
            float y = imageview_1.getScaleY();

            imageview_1.setScaleX((float) (x + .5));
            imageview_1.setScaleY((float) (y + .5));

            imageview_2.setScaleX((float) (x + .5));
            imageview_2.setScaleY((float) (y + .5));

            imageview_3.setScaleX((float) (x + .5));
            imageview_3.setScaleY((float) (y + .5));

            imageview_4.setScaleX((float) (x + .5));
            imageview_4.setScaleY((float) (y + .5));

            imageview_5.setScaleX((float) (x + .5));
            imageview_5.setScaleY((float) (y + .5));

            imageview_6.setScaleX((float) (x + .5));
            imageview_6.setScaleY((float) (y + .5));'

            imageview_7.setScaleX((float) (x + .5));
            imageview_7.setScaleY((float) (y + .5));

            imageview_8.setScaleX((float) (x + .5));
            imageview_8.setScaleY((float) (y + .5));

        }
    });

    zoomControls_Radar.setOnZoomOutClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            float x = imageview_1.getScaleX();
            float y = imageview_1.getScaleY();

            imageview_1.setScaleX((float) (x - .5));
            imageview_1.setScaleY((float) (y - .5));

            imageview_2.setScaleX((float) (x - .5));
            imageview_2.setScaleY((float) (y - .5));

            imageview_3.setScaleX((float) (x - .5));
            imageview_3.setScaleY((float) (y - .5));

            imageview_4.setScaleX((float) (x - .5));
            imageview_4.setScaleY((float) (y - .5));

            imageview_5.setScaleX((float) (x - .5));
            imageview_5.setScaleY((float) (y - .5));

            imageview_6.setScaleX((float) (x - .5));
            imageview_6.setScaleY((float) (y - .5));'

            imageview_7.setScaleX((float) (x - .5));
            imageview_7.setScaleY((float) (y - .5));

            imageview_8.setScaleX((float) (x - .5));
            imageview_8.setScaleY((float) (y - .5));
        }
    });

所有图片大小相同,这就是为什么我只收集一个ImageView的大小。

0 个答案:

没有答案