Welcome 微信登录

首页 / 操作系统 / Linux

Android游戏开发之使用AnimationDrable实现Frame动画

Android游戏开发之使用AnimationDrable实现Frame动画

Android开发中在制作2D帧动画中提供了使用XML配置动画文件的方式绘制,也就是说Android底层提供了动画播放的接口,那么我们分析一下如何调用它的接口来绘制动画。首先在工程res资源文件夹下创建anim动画文件夹,在这个文件夹中建立一个animation.xml文件, 这样它的路径就为re/anim/animation.xml。看看内容应该是很好理解的,<animation-list>为动画的总标签,这里面放着帧动画 <item&...
Android开发改善用户体验的小技巧

Android开发改善用户体验的小技巧

出色的用户体验有三个特征:速度快、响应及时以及无缝。我们不能假设手机与桌面系统和服务器一样快,更多的是要关注你的代码是否高效。编写高效的Android代码,应遵循两个原则:不要做不必要的事;不要分配不必要的内存。以下是一些达到此目标的小技巧:1、避免建立对象例如,int数组比Integer数组好,同理,这适用于所有基本类型的组合2、使用本地方法不要吝惜使用String.indexOf(), String.lastIndexOf()等特殊实现的方法(spec...
Android开发AsyncTask异步处理任务使用方法及注意事项

Android开发AsyncTask异步处理任务使用方法及注意事项

在开发Android应用时必须遵守单线程模型的原则:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则:1.不要阻塞UI线程2.确保只在UI线程中访问Android UI工具包当一个程序第一次启动时,Android会同时启动一个对应的主线程(MainThread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分发到对应的组件进行处理。所以主...
Android触控屏幕Gesture(GestureDetector和SimpleOnGestureListener的使用教程)

Android触控屏幕Gesture(GestureDetector和SimpleOnGestureListener的使用教程)

1、当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(Viewv,MotionEventevent)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸的轨迹去判断是什么手势)Android sdk给我们提供了GestureDetect...
Android中使用SoftReference缓存图片对象

Android中使用SoftReference缓存图片对象

Java中的SoftReference即对象的软引用。如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。使用软引用能防止内存泄露,增强程序的健壮性。 SoftReference的特点是它的一个实例保存对一个Java对象的软引用,该软引用的存在不妨碍垃圾收集线程对该Java对象的回收。也就是说,一旦SoftRefere...
Android--由文件名获取文件Id的两种方法

Android--由文件名获取文件Id的两种方法

在Android中,我们经常使用资源文件的id来代替这个资源,如 R.drawable.*** ,那怎样通过文件名得到这个资源的Id的,这里介绍两种方法:一:通过 getIdentifier (String name, String defType, String defPackage)方法。这里有两种实现1.name 用package:type/entry,那么后面两个参数可以为null.2.name只写文件名,后面两参数分别为文件类型和包路径。二:通过...
Android-人脸检测FaceDetector

Android-人脸检测FaceDetector

无意中看到这个类,就查了一下。 FaceDetector检测到的并不是人的全脸,而只是双眼。实际测试中,发现图片太小的话检测不到人脸,试验中使用小于100x100的图片检测不到人脸,但是由于Android内存有限,图片太大的话,会出现无法加载图片的异常。图片的格式必须为Bitmap RGB565格式。文档 findFaces(Bitmap bitmap, Face[] faces)方法中有说明。方法有float confidence() ;可信度(0-1)...
在 Android 上更改与取得系统时区及时间

在 Android 上更改与取得系统时区及时间

最近正在写一个世界时钟的程式,期间遇到几个问题,花了好些功夫,还是没有得到满意的答案。分享出来,给其他遇到相似问题的网友,也看看有谁知道答案的。取得系统时间要得到目前的时间,这个倒是很容易,就是 System.currentTimeMillis()。不过要注意的是,这个函式传回的是 UTC (GMT) 这个时区的时间,像台湾所在的时区是 UTC+8,你得将这个函式所传回的值再加 8 个小时,才是你要的答案。实际上,当然不用自己加,你可以借用 Calenda...
Linux内核链表结构与container_of理解

Linux内核链表结构与container_of理解

Linux内核中链表结构:structlist_head{ structlist_head*next,*prev; }该链表结构内嵌在需要链接的数据结构体中structnf_sockopts{ structlist_headlist; intdata; }因此,我们通过链表访问数据节点时,通常只知道结构体中list字段的地址,如何去推导出整个结构体的起始地址? 内核中定义了一个list_entry()的宏,来返回结构体起始地址。定义如下:#definel...
<< 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 >>