Android ImageView如何绘制路径
我有一个带有背景图像的ImageView。ImageView按屏幕的百分比以编程方式调整大小。视图处于相对位置,处于视图的中心。我想要的是让它可以画。我希望能够用我的手指在里面画画(就像我们小时候在油漆里画胡说八道一样)。而且,当我移动手指时,我希望立即绘制路径。你能给我举个例子说明怎么做吗?有一些非常好的绘图应用参考资料,可以通过少量的谷歌搜索找到: 简单的应用程序可获得良好的湿手指/易于实施: 更复杂但非常透彻的解释:Android ImageView如何绘制路径,android,bitmap,android-canvas,draw,Android,Bitmap,Android Canvas,Draw,我有一个带有背景图像的ImageView。ImageView按屏幕的百分比以编程方式调整大小。视图处于相对位置,处于视图的中心。我想要的是让它可以画。我希望能够用我的手指在里面画画(就像我们小时候在油漆里画胡说八道一样)。而且,当我移动手指时,我希望立即绘制路径。你能给我举个例子说明怎么做吗?有一些非常好的绘图应用参考资料,可以通过少量的谷歌搜索找到: 简单的应用程序可获得良好的湿手指/易于实施: 更复杂但非常透彻的解释: 两者都不使用ImageView,但我确信您可以适应切换视图类型,您必
两者都不使用ImageView,但我确信您可以适应切换视图类型,您必须覆盖ImageView的
onTouchEvent
和onDraw
调用。在ontochevent
中获取用户的触摸位置,并绘制到ImageView
的canvas
。
参见此处示例-
只需使用GestureOverlayView并将您的图像设置为该OverlayView的背景
<android.gesture.GestureOverlayView
android:id="@+id/signaturePad"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:background="@color/white"
android:eventsInterceptionEnabled="true"
android:fadeEnabled="false"
android:gestureColor="@color/black"
android:gestureStrokeLengthThreshold="0.1"
android:gestureStrokeType="multiple"
android:orientation="vertical" >
</android.gesture.GestureOverlayView>
try {
GestureOverlayView gestureView = (GestureOverlayView) findViewById(R.id.signaturePad);
gestureView.setDrawingCacheEnabled(true);
Bitmap bm = Bitmap.createBitmap(gestureView.getDrawingCache());
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "signature.png");
f.createNewFile();
FileOutputStream os = new FileOutputStream(f);
os = new FileOutputStream(f);
//compress to specified format (PNG), quality - which is ignored for PNG, and out stream
bm.compress(Bitmap.CompressFormat.PNG, 100, os);
os.close();
} catch (Exception e) {
Log.v("Gestures", e.getMessage());
e.printStackTrace();
}
照此