时间:2021-05-20
废话不多说了,直接给大家代码。
具体代码如下所示:
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;}@Overridepublic 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 的全部内容,希望对大家有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这一篇,给大家介绍一下ImageView控件的使用,ImageView主要是用来显示图片,可以对图片进行放大、缩小、旋转的功能。android:sacleTyp
Android中ImageView的ScaleType使用方法ImageView的ScaleType属性,表示的是ImageView中资源图片的填充方式。sca
Android音乐播放器的运行效果这篇博客还是接着上一篇Android音乐播放器制作写的,没看过的可以去看看。其中这个效果(圆形ImageView和控件匀速旋转
本文实例讲述了Android开发中ImageView的scaletype属性用法。分享给大家供大家参考,具体如下:ImageView的属性android:sca
在Android加载图片一般使用ImageView,这里简单记录一下这个控件的使用方法。最简单就是在xml里直接使用ImageView标签:如果不想在xml里,