学习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 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 = "結果是";
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();
}
}
}
以上代碼完成后,還需要在清單里面添加權限,android.permission.WRITE_EXTERNAL_STORAGE。這個是往手機存儲權限。
總結
以上是生活随笔為你收集整理的学习android 画板源代码,Android实现画画板案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql my-small.ini_M
- 下一篇: 基于连通域字符分割的流程_基于连通域的版