200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 学习android 画板源代码 Android实现画画板案例

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

时间:2022-06-14 07:27:58

相关推荐

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

郑州app开发画画板案例。布局代码是三个button和一个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 .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.pressFormat;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

private static final String TAG = "结果是";

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);

press(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();

}

}

}

以上代码完成后,还需要在清单里面添加权限,android.permission.WRITE_EXTERNAL_STORAGE。这个是往手机存储权限。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。