Android setPolyToPoly遇到的问题(一)
2017-12-02 12:14
411 查看
# 问题
最近使用Matrix遇到一件比较诡异的问题,使用Matrix.setPolyToPoly接口绘制一个多边形,在
华为手机上遇到变形错位的问题.
把 Matrix 作用到系统传递过来的 canvas 上面,理论上来说这应该是没有问题的,但不知华为系统对 canvas 作了什么处理,就是不正常.
#
解决办法
通过查阅相关资料,发现这个问题是由硬件加速造成的.简单的说下硬件加速的优缺点:硬件加速能使用GPU来加速2D图像的渲染速度,但是硬件加速并不能完全支持所有的渲染操作,那么使用硬件加速就可能导致渲染出现错误.
# 开启和关闭硬件加速
对硬件加速的开关可以在不同的级别进行控制:Application
Activity
Windows
View
Application级别
在Application级别控制硬件加速的开关:<application android:hardwareAccelerated="true" ...>
Activity级别
可以对单个Activity控制是否启用硬件加速:<application android:hardwareAccelerated="true"> <activity ... /> <activity android:hardwareAccelerated="false" /> </application>
Window级别
对Window添加是否启用硬件加速:getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
View级别
指定View上关闭硬件加速:mView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
或者使用 android:layerType="software" 来关闭硬件加速
判断View是否启用了硬件加速 view.isHardwareAccelerated()
或者 canvas.isHardwareAccelerated()
使用自定义canvas解决此问题点击查看Android
setPolyToPoly遇到的问题(二)
记录点点滴滴,如果有问题请指点.
相关文章推荐
- Android setPolyToPoly遇到的问题(二)
- 关于Android开发导入已有项目遇到Project has no default.properties file! Edit the project properties to set one.问题的解决方法
- 今天遇到Canvas: trying to use a recycled bitmap android.graphics.Bitmap问题
- Android pulltorefresh引用遇到的一个问题
- Android 基于openfire即时聊天开发遇到的闪退问题:Already Login to Server
- 在使用Android-PullToRefresh前遇到的问题
- 在用MyEclipse 搭建android开发环境是遇到Unable to connect to repository的问题
- android中遇到java.lang.NumberFormatException: unable to parse 'null' as integer此类问题的原因及解决方法
- Android:真机调试遇到的问题(You need to use a Theme.AppCompat theme (or descendant) with this activity)
- Android 开发过程中遇到了一个问题 小记录一下 ERROR: In <declare-styleable> BorderLinearLayout, unable to find attribu
- Android中连接蓝牙设备时遇到createRfcommSocketToServiceRecord的UUID问题和BluetoothSocket的connect失败
- Android问题集锦转载之一:解决Android requires .class compatibility set to 5.0. Please fix project properties
- 解决升级go版本遇到的Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.问题
- (记录学习android遇到的问题)Error:Execution failed for task ':app:packageDebug'. > Failed to create
- [转]更新Android SDK到3.0版本时,遇到Failed to rename directory E:\android\tools to E:\android\temp\ToolPackage.old01问题
- 多方通话的时候遇到图片回收问题---目前没有方法解决 Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- Android 从 View 中获取 Activity 时遇到 TintContextWrapper cannot be cast to 的问题
- android编程过程中遇到的关于Canvas: trying to use a recycled bitmap android.graphics.Bitmap问题的原因及解决办法
- 教新手一步步解决:Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to和更新gradle问题
- 【Road To Android】2 Android操作Excel遇到的问题小结