我有一个带有背景图像的ImageView。 ImageView以编程方式调整为屏幕的百分比。视图位于RelativeLayout中,它位于它的中心。我想要的是让它成为可绘制的。我希望能够用我的手指画出来(就像我们在孩子们画画时一样废话)。当我移动我的手指时,我希望立即绘制路径。你能给我一个如何做的例子吗?
答案 0 :(得分:1)
有一些非常好的参考绘图应用程序,只需少量谷歌搜索:
简单的应用程序,以获得良好的湿手指/易于实施: http://v4all123.blogspot.com/2013/11/simple-drawing-example-in-android.html
更复杂,但解释非常彻底: http://code.tutsplus.com/tutorials/android-sdk-create-a-drawing-app-touch-interaction--mobile-19202
两者都没有使用ImageView,但我确信您可以适应切换视图类型
答案 1 :(得分:1)
只需使用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>
用于保存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();
}
关注此Example
答案 2 :(得分:0)
您必须覆盖ImageView的onTouchEvent
和onDraw
来电。在onTouchEvent
中获取用户的触摸位置,并绘制到ImageView
canvas
。
看这里的例子 -
paint canvas android