在Android中,可以四给不同层次上开启硬件加速:

1、Application

<applicationandroid:hardwareAccelerated="true">

2、Activity

<activityandroid:hardwareAccelerated="true">

3、Window

getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

4、View

view.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

在这四个层次中,应用和Activity是可以选择的,Window只能打开,View只能关闭。

在apk的AndroidManifest中,如果指定了minSDKVersion&targetSDKVersion=7,会使得应用无法使用硬件加速进行绘图。

注:有些朋友可能会遇到在开发过程中用到虚线的情况,实现有两种方式:

方式一:

hundsun_include_dotted_line.xml

<?xmlversion="1.0"encoding="utf-8"?>

<Viewxmlns:android="http://schemas.android.com/apk/res/android"

style="@style/HundsunStyleWmHw"

android:background="@drawable/hundsun_shape_dotted_line"/>

hundsun_shape_dotted_line.xml

<?xmlversion="1.0"encoding="utf-8"?>

<shapexmlns:android="http://schemas.android.com/apk/res/android"

android:shape="line">

<!--显示一条虚线,破折线的宽度为dashWith,破折线之间的空隙的宽度为dashGap,当dashGap=0dp时,为实线(使用时需要把这个Activity的硬件加速关了)-->

<stroke

android:dashGap="@dimen/hundsun_dimen_wee_spacing"

android:dashWidth="@dimen/hundsun_dimen_small_spacing"

android:width="@dimen/hundsun_dimen_normal_divide"

android:color="@color/hundsun_app_color_divide"/>

<!--虚线高度-->

<sizeandroid:height="2dp"/>

</shape>

这种方式需要在使用该虚线的Activity中设置<activityandroid:hardwareAccelerated="false">,缺点是这个Activity会变慢,如果有网络请求时,大概率出现收到数据后不会回调问题(断点时,每次都会回调,这是很多人遇到的奇怪问题)。

方式二(建议使用这种方式):

hundsun_include_dash_line.xml

<?xmlversion="1.0"encoding="utf-8"?>

<Viewxmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="@dimen/hundsun_dimen_normal_divide"

android:background="@drawable/hundsun_shape_dash"/>

hundsun_shape_dash.xml

<?xmlversion="1.0"encoding="utf-8"?>

<bitmapxmlns:android="http://schemas.android.com/apk/res/android"

android:src="@drawable/hundsun_dashed_line"

android:tileMode="repeat"/>

hundsun_dashed_line.png是一张图片,只要很小很小就行,自动平铺的。

另外对APP进行在线全方位远程调试我都会用Testbird――云手机,功能非常强大,又很方便快捷,还可以做兼容性测试、压力测试等等。


更多相关文章

  1. android 以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新
  2. android Pull方式解析xml文件
  3. 用IBM-MQTT方式实现Android 推送消息机制
  4. Android创建桌面快捷方式(兼容Android 8.0)
  5. 创建XmlPullParser两种方式
  6. Android 创建与解析XML(二)—— Dom方式
  7. Android中跨进程通信方式之使用AIDL进阶篇
  8. 为android应用程序添加桌面快捷方式

随机推荐

  1. 52条SQL语句教你性能优化
  2. 简单了解 MySQL 中相关的锁
  3. mysql在项目中怎么选事务隔离级别
  4. .Net Core导入千万级数据至Mysql的步骤
  5. MySQL大小写敏感的注意事项
  6. MySQL 使用事件(Events)完成计划任务
  7. MySQL触发器的使用
  8. Oracle更换为MySQL遇到的问题及解决
  9. MySQL 重命名表的操作方法及注意事项
  10. Mysql官方性能测试工具mysqlslap的使用简