国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android 實現在照片上繪制涂鴉的方法

2019-12-12 00:30:29
字體:
來源:轉載
供稿:網友

這個應該是簡易版的美圖秀秀(小伙伴們吐槽:你這也叫簡易版的??我們看著怎么不像啊……)。好吧,只是在圖片上繪制涂鴉,然后保存。

一、選擇圖片

這個道長有必要說一下,在繪制涂鴉時,筆畫會根據設置ImageView的大小和屏幕的尺寸(不是像素)產生誤差。這個道長暫時還沒有找到解決方法,只是規避了一下。

把ImageView設置為全屏,布局文件代碼如下

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns: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"> <ImageView  android:id="@+id/iv_draw_pic"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layout_gravity="center_horizontal"  android:layout_margin="10dp" /> <RelativeLayout  android:layout_width="match_parent"  android:layout_height="wrap_content">  <Button   android:id="@+id/btn_choose"   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:layout_margin="5dp"   android:layout_weight="1"   android:text="選擇照片" />  <Button   android: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="保存照片" />  <Button   android: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 "MI 4LTE":    scale = 1.1f;    break;   case "HUAWEI NXT-AL10":    scale = 1.5f;    break;  }

效果圖如下

android 在照片上繪制涂鴉

二、繪制涂鴉

實現代碼如下:

 @Override public boolean onTouch(View view, MotionEvent motionEvent) {  int action = motionEvent.getAction();  switch (action) {   case MotionEvent.ACTION_CANCEL:    break;   case MotionEvent.ACTION_DOWN:    downX = motionEvent.getX() * scale;    downY = motionEvent.getY() * scale;    break;   case MotionEvent.ACTION_UP:    upX = motionEvent.getX() * scale;    upY = motionEvent.getY() * scale;    canvas.drawLine(downX, downY, upX, upY, paint);    iv_drawpicture.invalidate();    break;   case MotionEvent.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;  }  return true; }

效果圖如下:

android 在照片上繪制涂鴉

三、保存繪制涂鴉后的圖片

實現代碼如下:

try {  Uri imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());  OutputStream os = getContentResolver().openOutputStream(imageUri);  //compress方法將圖片轉換成JPG或者PNG格式  drawBitmap.compress(Bitmap.CompressFormat.JPEG, 90, os);  Toast.makeText(this, "Saved:" + imageUri.toString(), Toast.LENGTH_LONG).show(); } catch (FileNotFoundException e) {  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 實現在照片上繪制涂鴉的方法就是小編分享給大家的全部內容了,希望這篇文章能夠為小伙伴們提供一些幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安达市| 贵德县| 库尔勒市| 屯门区| 柳林县| 漯河市| 宿松县| 揭阳市| 白水县| 安新县| 分宜县| 浦江县| 镇平县| 博客| 兴仁县| 元谋县| 蒙阴县| 繁峙县| 梧州市| 城市| 望江县| 惠安县| 察雅县| 吴桥县| 寿光市| 珠海市| 平南县| 沙洋县| 建始县| 东莞市| 确山县| 商水县| 阜平县| 施甸县| 独山县| 合肥市| 通河县| 西和县| 衡水市| 芷江| 西和县|