日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

学习android 画板源代码,Android实现画画板案例

發(fā)布時(shí)間:2025/3/12 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习android 画板源代码,Android实现画画板案例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

鄭州app開發(fā)畫畫板案例。布局代碼是三個(gè)button和一個(gè)imagesview下面是圖片。

布局代碼就不展示了。下面是java代碼。

package cn.xhhkj.image;

import androidx.appcompat.app.AppCompatActivity;

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.graphics.Point;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.view.MotionEvent;

import android.view.View;

import android.widget.ImageView;

import android.graphics.Bitmap.CompressFormat;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "結(jié)果是";

private Canvas canvas;

private Paint paint;

private ImageView iv_image;

private Bitmap copybm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

indo();

}

public void init(){

iv_image = findViewById(R.id.iv_image);

}

public void indo(){

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),

R.drawable.c);

copybm = Bitmap.createBitmap(bitmap.getWidth(),

bitmap.getHeight(), bitmap.getConfig());

canvas = new Canvas(copybm);

paint = new Paint();

canvas.drawBitmap(bitmap, new Matrix(), paint);

iv_image.setImageBitmap(copybm);

iv_image.setOnTouchListener(new View.OnTouchListener() {

private float startX;

private float startY;

@Override

public boolean onTouch(View v, MotionEvent event) {

int action = event.getAction();

switch (action){

case MotionEvent.ACTION_DOWN:

startX = event.getX();

startY = event.getY();

break;

case MotionEvent.ACTION_MOVE:

float x = event.getX();

float y = event.getY();

canvas.drawLine(startX, startY, x, y, paint);

iv_image.setImageBitmap(copybm);

startX = x;

startY = y;

break;

case MotionEvent.ACTION_UP:

break;

default:

break;

}

return true;

}

});

}

public void changeColor(View view) {

paint.setColor(Color.RED);

}

public void bold(View view) {

paint.setStrokeWidth(5);

}

public void save(View view) {

Log.d(TAG,"保存");

File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".png");

FileOutputStream fos;

try {

fos = new FileOutputStream(file);

copybm.compress(CompressFormat.PNG, 100, fos);

//? ? ? ? ? ? Intent intent = new Intent();

//? ? ? ? ? ? intent.setAction(Intent.ACTION_MEDIA_MOUNTED);

//? ? ? ? ? ? intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));

//? ? ? ? ? ? sendBroadcast(intent);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}

以上代碼完成后,還需要在清單里面添加權(quán)限,android.permission.WRITE_EXTERNAL_STORAGE。這個(gè)是往手機(jī)存儲(chǔ)權(quán)限。

總結(jié)

以上是生活随笔為你收集整理的学习android 画板源代码,Android实现画画板案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。