我有一个显示位图的应用程序,用户可以使用触摸事件与位图交互(缩放和拖动)。是否可以在原始的imageView位图上对同一活动实现另一个Imageview,该位图具有自己独特的触摸事件?
例如,我有一个位图,用户可以将其缩放/拖动到他们想要的位置,然后当它们准备就绪时,他们将能够在图像上绘制圆圈(并且圆圈可以调整大小)。圆圈需要能够调整大小并移动,而背景中的图像保持最初缩放的程度。
这是执行我所拥有的代码......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_display);
Intent intent = getIntent();
String path = getIntent().getStringExtra(ImageDisplayActivity.KEY_PATH);
final Button button = (Button) findViewById(R.id.button1);
try {
java.io.FileInputStream in = this.openFileInput(path);
bitmap = BitmapFactory.decodeStream(in);
bitmap = bitmap.copy(bitmap.getConfig(), true);
touch = (ZoomInZoomOut)findViewById(R.id.IMAGEID);
touch = arrangeImageView(touch);
touch.setImageBitmap(bitmap);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void sendMessage(View view) {
// Do something in response to button click
shape = (DrawView)findViewById(R.id.IMAGEID2);
}
XML
<com.commonsware.android.test1.ZoomInZoomOut
android:id="@+id/IMAGEID"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<com.commonsware.android.test1.DrawView
android:id="@+id/IMAGEID2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"/>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AddCircle"
android:id="@+id/button1"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="sendMessage"/>
答案 0 :(得分:1)
是。您可以通过扩展它来实现自己的ImageView。完成后,您可以添加GestureDetectors
,ScaleGestureDetector
并覆盖onTouchEvent
以实现缩放/拖动以及其他任何内容。
然后在Activity中包含两个ImageView。