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 的全部内容,希望对大家有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传惠普CEO李艾科将部署全新战略计划

北京时间1月15日消息&#xff0c;据知情人士透露&#xff0c;惠普新任CEO李艾科(Leo Apotheker)即将完成一项战略计划&#xff0c;包括重组管理层&#xff0c;以及将更多精力放在利润率更高的业务上。 知情人士表示&#xff0c;这些计划包括向软件、网络和存储业务投入更多资源…

[html] 请使用canvas画一个渐变的长方形

[html] 请使用canvas画一个渐变的长方形 // 普通canvas绘图工具类// umd适配多种引入方式 (function(root, factory) {if (typeof define function && define.amd) {// AMDdefine([CanvasTool], factory);} else if (typeof exports object && typeof modul…

动态规划-直方图最大长方形

/* 1017: C03-单调栈算法-最大长方形时间限制: 1 Sec 内存限制: 128 MB 提交: 17 解决: 10 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述给你一个直方图&#xff0c;告诉你各个条形矩形的高度&#xff0c;求基线对齐构成的矩形中面积最大的矩形的面积。对于每一个矩形…

android记事本项目案例,Android实现记事本项目完整实例源代码

【实例简介】记事本项目源码&#xff0c;我的博客有详细描述。一个记事本&#xff0c;能够输入标题和内容&#xff0c;创建日期、最新修改日期等信息。如果没有输入标题则使用内容的第一句话作为标题&#xff0c;创建日期和修改日期均由系统自动生成&#xff0c;无需用户干预。…

Metropolis Hasting算法

Metropolis Hasting Algorithm: MH算法也是一种基于模拟的MCMC技术&#xff0c;一个很重要的应用是从给定的概率分布中抽样。主要原理是构造了一个精妙的Markov链&#xff0c;使得该链的稳态是你给定的概率密度。它的好处&#xff0c;不用多说&#xff0c;自然是可以对付数学形…

[html] html的开始与结束标签嵌套错误会导致哪些问题?

[html] html的开始与结束标签嵌套错误会导致哪些问题&#xff1f; 有的可以被正常解析&#xff0c;有的不行。题目中的例子可以被正常解析&#xff0c;如果是 <div><a>标题</div></a>&#xff0c;a 标签不能被正常解析。个人简介 我是歌谣&#xff0…

荣耀变鸿蒙系统,鸿蒙系统首批升级机型曝光!荣耀手机遗憾缺席,原因很简单...

原标题&#xff1a;鸿蒙系统首批升级机型曝光&#xff01;荣耀手机遗憾缺席&#xff0c;原因很简单大家好&#xff0c;我是科技君的探讨&#xff0c;欢迎关注我&#xff0c;与我一起进行科技的探讨。华为鸿蒙系统可以说是目前数码圈关注度最高的事件之一了。从早期公布&#xf…

bzoj2733永无乡

永无乡 HYSBZ - 2733 永无乡包含 n 座岛&#xff0c;编号从 1 到 n&#xff0c;每座岛都有自己的独一无二的重要度&#xff0c;按照重要度可 以将这 n 座岛排名&#xff0c;名次用 1 到 n 来表示。某些岛之间由巨大的桥连接&#xff0c;通过桥可以从一个岛 到达另一个岛。如果…

在 Delphi 下使用 DirectSound (14): 测试镶边效果器 IDirectSoundFXFlanger8

{相关结构:} TDSFXFlanger packed recordfWetDryMix: Single; // 0 .. 100 : 50 (%)fDepth: Single; // 0 .. 100 : 100 (%)fFeedback: Single; //-99 .. 99 : -50 (%)fFrequency: Single; // 0 .. 10 : 0.25lWaveform: Longint; // 0 .. 1 : 1fDelay: Sin…

[html] 说说如果a链接href=““(空)时点击时会有什么表现?

[html] 说说如果a链接href""&#xff08;空&#xff09;时点击时会有什么表现&#xff1f; 不会进行跳转&#xff0c;会刷新当前页面个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录…

html判断是否在页面,html判断当前页面是否在iframe中的实例

html判断当前页面是否在iframe中的实例在做HTML页面的时候&#xff0c;经常会遇到“如果当前页面显示在iframe中&#xff0c;我们就相应的处理”判断方法为&#xff1a;//判断是否在iframe中if(self!top){parent.window.location.replace(window.location.href);}以上这篇html判…

一种用户体验-显示对话框时灰化你的主窗体

袁永福 ( http://www.xdesigner.cn ) 2007&#xff0d;8&#xff0d;10 程序全部源代码下载(工程文件使用VS.NET2003格式):/Files/xdesigner/DisableMask.rar 在一些Web程序中,有一种页面效果,当弹出一个模拟的对话框时,主页面就整体灰化了,其他的元素不能动弹,只有这个对话框能…

sql经典语句

一、基础 1、说明&#xff1a;创建数据库 CREATE DATABASE database-name 2、说明&#xff1a;删除数据库 drop database dbname 3、说明&#xff1a;备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.d…

[html] html元素哪些标签是不可替换元素?哪些是可替换元素?

[html] html元素哪些标签是不可替换元素&#xff1f;哪些是可替换元素&#xff1f; 可替换元素&#xff08;replaced element&#xff09;的展现效果不是由 CSS 来控制的。这些元素是一种外部对象&#xff0c;它们外观的渲染&#xff0c;是独立于 CSS 的。也就是说&#xff0c…

html文档中用于表示页面标题的标记对是,汽车发动机拆装与检修实训超星尔雅答案...

摘要&#xff1a;汽车生活事件也称为应激源( )在教师的直接领导下整个班级的学生一起进行的学习&#xff0c;机拆检修称为( )实训教学二字连用最早出自( )...汽车生活事件也称为应激源( )发动下列不属于课程与教学关系观的是( )在教师的直接领导下整个班级的学生一起进行的学习…

一些类的概念

1、异常处理 try: pass except: pass2、面向对象 怎么用类 面向过程#1、4s店#2、保险公司&#xff0c;上保险#3、税务局交税#4、车管所 面向对象1&#xff1a;买车处 #1、4s店 #2、保险公司&#xff0c;上保险 #3、税务局交税…

[html] 请使用canvas画一个椭圆

[html] 请使用canvas画一个椭圆 <script> var cdocument.getElementById("myCanvas"); var ctxc.getContext("2d"); ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke(); </script> 个人简介 我是歌谣&#xff0c;欢迎和大家一起…

html 跟随鼠标移动线条,canvas跟随鼠标移动的随机线条

/** type {HTMLCanvasElement} */let canvas document.querySelector(#canvas);let cxt canvas.getContext(2d);let w canvas.width window.innerWidth;let h canvas.height window.innerHeight;mousePosition {x: Number,y: Number}//随机颜色function ranColor() {ret…

go 优秀文档

go语言资料汇总 &#xff1a; https://blog.zhnytech.com/articles/2016/07/15/Golang%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99%E6%94%B6%E9%9B%86.html github资料基础&#xff1a;https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md k8s国外镜像 …

Python 程序 运行过程

一. Python 解释器 Python 是一门编程语言&#xff0c;同时也是一个解释器的软件包。 解释器是一种让其他程序运行起来的程序。 当你编写了一段Python 程序&#xff0c;Python 解释器将读取程序&#xff0c;并按照其中的命令执行&#xff0c;得出结果。解释器是代码与计算机硬…