11.19
package com.example.myapp;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.PorterDuff;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
public class ImageDrawingView extends View {
private Paint paint;
private Bitmap bitmap;
public ImageDrawingView(Context context) {
super(context);
init();
}
public ImageDrawingView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public ImageDrawingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
paint = new Paint();
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
// 从资源中加载图片
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 绘制原始图片
canvas.drawBitmap(bitmap, 50, 50, paint);
// 进行缩放
canvas.save();
canvas.scale(0.5f, 0.5f, 200, 200);
canvas.drawBitmap(bitmap, 50, 50, paint);
canvas.restore();
// 进行旋转
canvas.save();
canvas.rotate(45, 400, 400);
canvas.drawBitmap(bitmap, 200, 200, paint);
canvas.restore();
// 进行平移
canvas.save();
canvas.translate(300, 300);
canvas.drawBitmap(bitmap, 0, 0, paint);
canvas.restore();
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.myapp.ImageDrawingView
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
本文来自博客园,作者:赵千万,转载请注明原文链接:https://www.cnblogs.com/zhaoqianwan/p/18177837
千万千万赵千万