发布时间:2025-12-10 23:23:31 浏览次数:1
把ImageView设置为全屏,布局文件代码如下
<?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="5dp"android:orientation="vertical"><ImageViewandroid:id="@+id/iv_draw_pic"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="center_horizontal"android:layout_margin="10dp"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn_choose"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5dp"android:layout_weight="1"android:text="选择照片"/><Buttonandroid:id="@+id/btn_save"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_margin="5dp"android:layout_weight="1"android:text="保存照片"/><Buttonandroid:id="@+id/btn_clear"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_margin="5dp"android:layout_weight="1"android:text="擦除笔迹"/></RelativeLayout></FrameLayout>
根据机型设置缩放比例
switch(model){case"MI4LTE":scale=1.1f;break;case"HUAWEINXT-AL10":scale=1.5f;break;}效果图如下
二、绘制涂鸦
实现代码如下:
@OverridepublicbooleanonTouch(Viewview,MotionEventmotionEvent){intaction=motionEvent.getAction();switch(action){caseMotionEvent.ACTION_CANCEL:break;caseMotionEvent.ACTION_DOWN:downX=motionEvent.getX()*scale;downY=motionEvent.getY()*scale;break;caseMotionEvent.ACTION_UP:upX=motionEvent.getX()*scale;upY=motionEvent.getY()*scale;canvas.drawLine(downX,downY,upX,upY,paint);iv_drawpicture.invalidate();break;caseMotionEvent.ACTION_MOVE:upX=motionEvent.getX()*scale;upY=motionEvent.getY()*scale;canvas.drawLine(downX,downY,upX,upY,paint);iv_drawpicture.invalidate();downX=upX;downY=upY;break;default:break;}returntrue;}三、保存绘制涂鸦后的图片
实现代码如下:
try{UriimageUri=getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,newContentValues());OutputStreamos=getContentResolver().openOutputStream(imageUri);//compress方法将图片转换成JPG或者PNG格式drawBitmap.compress(Bitmap.CompressFormat.JPEG,90,os);Toast.makeText(this,"Saved:"+imageUri.toString(),Toast.LENGTH_LONG).show();}catch(FileNotFoundExceptione){e.printStackTrace();}四、擦除涂鸦笔迹
实现代码如下:
drawBitmap=Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(),bmp.getConfig());canvas=createCanvas(drawBitmap);paint=createPaint();canvas.drawBitmap(bmp,0,0,paint);iv_drawpicture.setImageBitmap(drawBitmap);iv_drawpicture.setOnTouchListener(this);
关于使用android怎么在照片中绘制涂鸦就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。