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

时间: 2024-09-22 14:10:53

Android使用RotateImageView 旋转ImageView的相关文章

Android使用RotateImageView 旋转ImageView_Android

废话不多说了,直接给大家代码. 具体代码如下所示: 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.

Android实现屏幕旋转方法总结

  Android实现屏幕旋转方法总结         这篇文章主要介绍了Android实现屏幕旋转方法,实例总结了屏幕旋转的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例总结了Android实现屏幕旋转方法.分享给大家供大家参考.具体如下: 在介绍之前,我们需要先了解默认情况下android屏幕旋转的机制: 默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局

视频播放-如何在android系统上旋转视频方向

问题描述 如何在android系统上旋转视频方向 目前在做一个盒子,无陀螺仪,视频播放时方向不正确.试了各种方法,无效. 解决方案 tabbar的旋转方向 解决方案二: 太麻烦了,没有大侠知道吗?

导航 地图服务器-android 3D可以旋转视角的导航地图如何开发?小弟不胜感激。

问题描述 android 3D可以旋转视角的导航地图如何开发?小弟不胜感激. 请问大侠们 android 3D可以旋转视角的导航地图如何开发?小弟不胜感激. android客户端用 opengl es 吗? 服务器端用什么? 使用ArcGIS Server 做后台地图服务器吗? 还是使用 opengl es 加载 obj三维模型文件,组成3D场景进行导航服务呢?

android 之GridView和ImageView教程

GridView: A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view. 简单说,GridView就是我们资源管理器平常见到的一个个文件的icon显示方式.     上面提及到了,GridView的Item是来自ListAdapter的,所以一般在Activity的onCreate使用

Android编程简单实现ImageView点击时背景图修改的方法_Android

本文实例讲述了Android编程简单实现ImageView点击时背景图修改的方法.分享给大家供大家参考,具体如下: 在使用ImageView时,当被点击时,希望背景图修改一下,这样显示被点击效果明显一些.在这里,一个很简单的方法,最起码是个很清晰的方法.在res/drawable文件夹下创建一个xml文件.比如my.xml,内容如下: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:an

Android控件之ImageView用法实例分析_Android

本文实例讲述了Android控件之ImageView用法.分享给大家供大家参考.具体如下: ImageView控件是一个图片控件,负责显示图片. 以下模拟手机图片查看器 目录结构: main.xml布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android实现屏幕旋转方法总结_Android

本文实例总结了Android实现屏幕旋转方法.分享给大家供大家参考.具体如下: 在介绍之前,我们需要先了解默认情况下android屏幕旋转的机制: 默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局,如果在Camera界面,则表现为卡顿或者黑屏一段时间.如果是在横竖屏UI设计方面,那么想很好地支持屏幕旋转,则建议在res中建立layout-land和layout-port两个

Android使用控件ImageView加载图片的方法_Android

在 Android 加载图片一般使用 ImageView,这里简单记录一下这个控件的使用方法. 最简单就是在 xml 里直接使用 ImageView 标签: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="