欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

android view rotate,Android使用RotateImageView 旋转ImageView

发布时间:2023/12/10 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 android view rotate,Android使用RotateImageView 旋转ImageView 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

废话不多说了,直接给大家代码。

具体代码如下所示:

package com.droidhen.game.layout;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.Bitmap.Config;

import android.graphics.Canvas;

import android.graphics.Paint;

import android.graphics.PaintFlagsDrawFilter;

import android.graphics.Rect;

import android.widget.ImageView;

public class RotateImageView extends ImageView {

/**旋转角度**/

private float _degree;

/**旋转中心**/

private float _x;

private float _y;

/** 背景和前景资源 */

private Bitmap _bgRes, _fgRes;

/** 数字图片资源 */

private Bitmap _nums;

private Bitmap _buffer;

private Canvas _canvas;

private int start = ;

private int unitx = ;

public RotateImageView(Context context) {

super(context);

_degree = f;

_x = ;

_y = ;

_nums = BitmapFactory.decodeResource(getResources(), R.drawable.level_num);

}

public void setResIds(int bgResId, int fgResId) {

_bgRes = BitmapFactory.decodeResource(getResources(), bgResId);

_fgRes = BitmapFactory.decodeResource(getResources(), fgResId);

}

public void setLevel(int level) {

String _level = String.valueOf(level);

_buffer = Bitmap.createBitmap( _level.length()*(_nums.getWidth()/), _nums.getHeight(), Config.ARGB_);

unitx = _nums.getWidth()/;

_canvas = new Canvas(_buffer);

for(int i = ; i <= _level.length()-; i++){

Rect src = new Rect((_level.charAt(i) - '')*unitx, , (_level.charAt(i) - '' + )*unitx, _nums.getHeight());

Rect dst = new Rect( i*unitx, , (i + )*unitx, _nums.getHeight());

_canvas.drawBitmap(_nums, src, dst, null);

}

}

public void setLevel(int level, int Resid) {

_nums = BitmapFactory.decodeResource(getResources(), Resid);

String _level = String.valueOf(level);

_buffer = Bitmap.createBitmap( _level.length()*(_nums.getWidth()/), _nums.getHeight(), Config.ARGB_);

unitx = _nums.getWidth()/;

_canvas = new Canvas(_buffer);

for(int i = ; i <= _level.length()-; i++){

Rect src = new Rect((_level.charAt(i) - '')*unitx, , (_level.charAt(i) - '' + )*unitx, _nums.getHeight());

Rect dst = new Rect( i*unitx, , (i + )*unitx, _nums.getHeight());

_canvas.drawBitmap(_nums, src, dst, null);

}

}

public void setDegree(float degree) {

_degree = degree;

}

public void setDegree(float degree, float x, float y) {

_degree = degree;

_x = x;

_y = y;

}

public float getDegree() {

return _degree;

}

public float getRotateX() {

return _x;

}

public float getRotateY() {

return _y;

}

@Override

public void draw(Canvas canvas) {

canvas.save();

canvas.setDrawFilter(new PaintFlagsDrawFilter(, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));

canvas.rotate(_degree, _x, _y);

canvas.drawBitmap(_bgRes, , , null);

canvas.drawBitmap(_fgRes, , , null);

canvas.drawBitmap(_buffer, (_bgRes.getWidth() - _buffer.getWidth())/f, , null);

canvas.restore();

}

}

以上代码是关于Android RotateImageView 可旋转ImageView 的全部内容,希望对大家有所帮助。

总结

以上是生活随笔为你收集整理的android view rotate,Android使用RotateImageView 旋转ImageView的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。