android图标重力感应插件,重力感应,图片摆动旋转(自定义控件) android
自定义ImageView控件,根据重力感应,图片左右摇摆(只是类似于摇一摇的简单Demo。真机测试,不要用虚拟机,虚拟机没有重力感应。会有抖动现象,因为重力感应一直在变,可以参考下http://download.csdn.net/detail/daweibalang717/6800609,请下载后自己完善)
下面是主代码:
public void setText(String text,float size){
this.text = text;
myPaint.setColor(Color.WHITE);
myPaint.setTextSize(size);
myPaint.setAntiAlias(true);//防止边缘的锯齿
myPaint.setFilterBitmap(true);//对位图进行滤波处理。
FontMetrics fm = myPaint.getFontMetrics(); //字体属性集
TextHeight = (float) Math.ceil(fm.descent - fm.top); //文字的高
float [] widths = new float[text.length()];
myPaint.getTextWidths(text, widths);
for (int i =0;i
TextWidth += widths[i];
}
}
public void setImage(int id){
bitmap = BitmapFactory.decodeResource(context.getResources(), id);
BufferBitmap = Bitmap.createBitmap(bitmap.getWidth()+width_padding, bitmap.getHeight()+height_padding, bitmap.getConfig());//因为要摆动,宽高增加一些
mCanvas = new Canvas(BufferBitmap);
isHavaeImage = true;
}
@Override
protected void onDraw(Canvas canvas)
{
// TODO Auto-generated method stub
super.onDraw(canvas);
}
@Override
public void doRotate(float x)
{
// TODO Auto-generated method stub
synchronized (this)
{
float degrees = (x / 10 )*90; // 求出角度。 x的重力加速度最大值为10 90度
System.out.println("偏角:"+ degrees);
matrix.postRotate(degrees-myDegress,BufferBitmap.getWidth()/2,0);
myDegress = degrees;
if(isHavaeImage && degrees>=-20.0 && degrees <=20.0){ //最大最小偏转度为20 -20;
clear(mCanvas);
mCanvas.setMatrix(matrix);
mCanvas.drawBitmap(bitmap,width_padding/2,0, myPaint);
mCanvas.drawText(text,(bitmap.getWidth()+width_padding-TextWidth)/2,bitmap.getHeight()/2+TextHeight, myPaint);//文字是以左下点为坐标的
setImageBitmap(BufferBitmap);//把缓存图形设置给Imageview;
invalidate();
}
}
}
public void clear(Canvas cancas){
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
cancas.drawPaint(paint);
}
android图标重力感应插件,重力感应,图片摆动旋转(自定义控件) android相关推荐
- Android开发--Matrix(二)--实现图片的旋转
Matrix功能很是强大,利用这个类提供的一系列方法,我们可以实现图片的旋转. 下面以一个例子说明实现方法. 首先,我们看下实现的截图: 下面给出具体的实现代码: 1.xml布局文件 <?xml ...
- Android 部分手机拍照后获取的图片被旋转
三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的...其它品牌的手机都是正常的,就三星出现这个怪事. 解决办法是获取到拍照后照片被旋转的角度,再旋转回去就好了. 在获取相机返 ...
- android 自动相机 图片旋转问题,Android部分手机拍照后获取的图片被旋转问题的解决方法...
调用Android系统拍照功能后,三星手机拍摄后的照片被旋转了90度,横着拍给你变成竖的,竖的拍给你变成横的.其它品牌的手机都是正常的,就三星出现这个怪事. 在Android适配上,我原来一直以为国内 ...
- 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )
文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...
- Android进阶之路 - 解决部分手机拍照之后图片被旋转的问题
这几天犯了一个错误,初期想着甩锅给后台的- 但还好及时发现了是自身的问题~ 关联文章 Android基础进阶 - 调用拍照.获取图片(基础) Android基础进阶 - 获取.调用相册内图片(基础) ...
- Android基础进阶 - 调用拍照、获取图片
本篇给大家带来的是拍照回传的初级使用,用的同样是数据回传的方式,首先 startActivityForResult 确定 Action.requestCode,之后重写 onActivityResul ...
- ios 拍照上传到服务器_ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案...
1.可以通过前端进行解决,本案例通过后端解决的 判断请求的浏览器的ua,如果是ios浏览器则进行90度旋转 重点来了: 必须确保检测的图片是ios设备上传的完整图片,不要在前端压缩过的,因为压缩后的图 ...
- linux屏幕旋转后触控不准,手机重力感应失效解决方法 不能自动旋转屏幕怎么设置...
如今手机已经成为人们生活中必不可少的一个工具了,在使用过程也常常会遇到各种各样的问题,比如当手机重力感应失效的时候应该怎么解决呢,手机不能自动旋转屏幕要怎么设置,针对这个问题下面就为大家带来最新解决方 ...
- android动态图标主题,【官方秘籍】MAML动态图标百变插件完美适配全机型教程
[官方秘籍]MAML动态图标&百变插件完美适配全机型教程 发布时间: 2016-01-27 11:29 一份manifest文件,可以同时运行在多个设备,只需要设置好在不同尺寸或密度的设备上使 ...
- Android - 小功能 - 传感器之重力传感器
一:什么是传感器: 所谓传感器能够探测如光.热.温度.重力.方向 等等的功能! 二:Android中提供传感器有哪些: 1. 加速度传感器(重力传感器) 2. ...
最新文章
- mysql cascade的用法_MySQL常用操作笔记
- Shell中read的常用方式
- Angular应用从Component到Html的数据绑定是如何实现的 -数据流的讨论
- etlgr是什么服务器_ETL是指什么 - 金融行业 - ITPUB论坛-中国专业的IT技术社区
- 【基于注解方式】Spring整合Kafka
- (14)FPGA面试技能提升篇(nlint工具、CDC方法)
- windows操作系统下载tomcat,并与eclipse进行整合
- C#的解题思路(1):不重复随机数的产生问题
- 什么是网关,网关的作用
- python文件都是脚本吗_脚本语言系列之Python | Python文件IO
- oracle sql试题
- 千脑智能理论:开启创造机器智能的路线图 | 《千脑智能》
- 易语言 火眼 哈勃 防分析源码
- 手机端,网站页面被浏览器转码
- 安徽大学计算机科学与技术学院张磊,吕钊(安徽大学计算机科学与技术学院副教授)_百度百科...
- 渠道分析 之 渠道分析的价值 -3
- 路由器和交换机的工作原理---笔面试
- 解决chrt: failed to set pid 0‘s policy: Operation not permitted
- html保存时出现nul,c# – 有时保存的文件只包含NUL字符
- java中提示确认_javascript对话框使用方法(警告框 javascript确认框 提示框)
热门文章
- [USACO] Team Tic Tac Toe
- Fatal error: Call to undefined function ParCv() in E:\AppServ\www\include\dedesql.class.php on line
- 3des解密 mysql_转角处拐弯007
- 概要设计 重要性_艺术留学——服装设计
- 如何删除计算机新用户,如何将电脑里的账户信息彻底删除
- 使用ffmpeg合并mp4文件
- Apollo选型及优势介绍
- 51单片机八段数码c语言程序,51单片机做的音乐盒,带八段数码管显示程序+Proteus仿真...
- pandas:float divided by zero
- 300多张电脑壁纸打包下载,高清电脑壁纸