在搞乱我的应用时,我想让用户放大和缩小特定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
的大小。