91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android實現畫畫板案例

發布時間:2020-08-29 15:08:13 來源:腳本之家 閱讀:135 作者:常利兵 欄目:移動開發

本文實例為大家分享了Android實現畫畫板的具體代碼,供大家參考,具體內容如下

① 準備一個布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
android:layout_width="match_parent" android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.it.MainActivity">
<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <Button
    android:text="修改顏色"
    android:onClick="color"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  <Button
    android:text="粗細+1"
    android:onClick="size"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  <Button
    android:text="保存圖片"
    android:onClick="save"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

<ImageView
  android:id="@+id/iv_bg"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />
</LinearLayout>

② 核心代碼

package com.example.it;

import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Environment;
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

private final String TAG = getClass().getSimpleName();
private ImageView iv_show;
private Bitmap copyBm;
private float x;
private float y;
private Paint paint;
private int paintsize = 1;
private FileOutputStream fos;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //初始化控件
  iv_show = (ImageView) findViewById(R.id.iv_bg);
  //創建一個空白的bitmap
  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
  copyBm = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
  //創建畫布
  final Canvas canvas = new Canvas(copyBm);
  //使用畫布繪制圖片
  paint = new Paint();
  canvas.drawBitmap(bitmap,new Matrix(), paint);
  iv_show.setImageBitmap(copyBm);

  //為畫筆在屏幕上移動設置監聽事件
  iv_show.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

      //獲取當前事件的類型
      int action = event.getAction();
      switch (action){
        case MotionEvent.ACTION_DOWN:
          //如果是手指按下時,記錄一下手指的位置
          x = event.getX();
          y = event.getY();
          Log.e(TAG,x+"******"+y);
          break;
        case MotionEvent.ACTION_MOVE:
          //如果手指正在移動時
          float x1 = event.getX();
          float y1 = event.getY();
          canvas.drawLine(x,y,x1,y1, paint);
          x = x1;
          y = y1;
          Log.e(TAG,x1+"**********"+y1);
          break;
        case MotionEvent.ACTION_UP:
          break;
      }
      iv_show.setImageBitmap(copyBm);
      return true;
    }
  });
}

//修改顏色
public void color(View view) {
  paint.setColor(Color.RED);
}

//修改線條粗細
public void size(View view) {
  paintsize+=1;
  paint.setStrokeWidth(paintsize);
}

//保存圖片
public void save(View view) {

  //設置圖片保存的位置
  File file = new File(Environment.getExternalStorageDirectory(), SystemClock.currentThreadTimeMillis()+".png");
  try {
    fos = new FileOutputStream(file);
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  }

  //設置參數保存的質量
  copyBm.compress(Bitmap.CompressFormat.PNG,100,fos);
  //定義一個意圖,通過發出廣播告訴系統掃描指定的位置的文件
  Intent intent = new Intent();
  intent.setAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  intent.setData(Uri.fromFile(file));
  sendBroadcast(intent);
}
}


③ 權限信息

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临朐县| 洛阳市| 合川市| 横山县| 吉林省| 漠河县| 恭城| 渝中区| 柳林县| 和静县| 汪清县| 达孜县| 买车| 拉孜县| 永昌县| 兴山县| 阳西县| 龙岩市| 射阳县| 修水县| 瑞安市| 上林县| 辛集市| 大厂| 绥德县| 大名县| 泾源县| 蓬安县| 会同县| 新沂市| 应用必备| 九龙城区| 刚察县| 宁津县| 探索| 道孚县| 孝义市| 资源县| 合作市| 德安县| 红原县|