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>

posted @ 2024-11-19 19:21  赵千万  阅读(4)  评论(0编辑  收藏  举报