我知道这个问题已经详细讨论了,我知道并尝试了一些解决方案,包括" TouchImageView"。但我的问题略有不同。我想在没有动作,手势或任何触摸事件的帮助下滚动图像。我之所以使用ScrollView,认为它可以解决问题。
我使用ZoomControlers小部件,只是调用imageView的缩放功能进行放大和缩小...
问题是ScrollView没有响应......任何建议都将受到赞赏
以下是我的XML和MainActivity类代码......
activity_zoom_image.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="${packageName}.${activityClass}" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scroll_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/zoom"
android:isScrollContainer="true"
android:src="@drawable/eiff" />
</ScrollView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
<ZoomControls
android:id="@+id/zoomControls1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>
ZoomImage.java的OnCreat方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(new Zoom(this));
setContentView(R.layout.activity_zoom_image);
image = (ImageView) findViewById(R.id.imageView1);
zoom = (ZoomControls) findViewById(R.id.zoomControls1);
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.eiff);
image.setImageBitmap(bitmap);
zoom.setOnZoomInClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
float x = image.getScaleX();
float y = image.getScaleY();
image.setScaleX((float) (x+1));
image.setScaleY((float) (y+1));
}
});
zoom.setOnZoomOutClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
float x = image.getScaleX();
float y = image.getScaleY();
if (x <= 1 || y <= 1)
return;
image.setScaleX((float) (x-1));
image.setScaleY((float) (y-1));
}
});
}
答案 0 :(得分:0)
尝试使用外部jar文件,例如pinchzoom.jar。只是google它,你可以找到一个和说明。
http://androidtrainningcenter.blogspot.in/2013/04/update-pinch-to-zoom-example-and.html
这是链接,尝试一下......干杯
答案 1 :(得分:0)
<ScrollView
android:id="@+id/scroll_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/zoom"
android:isScrollContainer="true"
android:src="@drawable/eiff" />
</ScrollView>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
<ZoomControls
android:id="@+id/zoomControls1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</LinearLayout>