- 博客(23)
- 资源 (4)
- 收藏
- 关注
原创 NDK学习( 三),多线程与异步回调
场景:在Java中传递任意类型参数,在JNI中新开子线程,将传入的参数处理后回调Java中的方法技术点:1、在JNI中新开子线程并传递参数2、在子线程中回调Java方法(误区:JNIEnv指针可以共享)对于技术点1,可参考一般的C++开发教程,一般创建子线程的方法有:通过pthread_createC++11中thread的用法参考:http://sta
2017-02-27 16:45:44
2671
原创 NDK学习( 二),在NDK开发中引入第三方库(AndroidStudio Cmake)
在NDK中可能需要复用之前已经编译好的so文件,所以本章的目标是给一个之前编译好的so文件外加一个需要调用接口的头文件,在现在项目中复用。在本次实践过程中,已经有编译完成的各种cpu架构的libstringutil-lib.so以及头文件,Stringutil.h头文件中简单定义了两个接口:class StringUtil {public:static char*
2017-02-23 17:41:04
6282
原创 NDK学习(一),向Native层传递各种参数、由Native层返回各种参数
本章涉及的技术要点:a、传递空参数,基本类型参数、多个参数,Java自定义类对象、不同类型的数组做参数b、返回基本类型参数,返回Java自定义类对象,返回空c、在JNI(C语言)环境中如何调用Java中的方法(得到方法ID,执行方法,得到返回值)d、在JNI(C语言)环境如何获取某个JAVA自定义对象的成员变量(得到Field ID,获取值)参考文档:https:/
2017-02-22 17:36:49
3661
原创 Android 自定义View 让内容跟随手指滚动
需求:自定义一个View,当Canvas绘制的内容超过当前屏幕,希望能够通过手指触摸屏幕的方法移动画布的内容。实现思路:通过View的OnTouchEvent方法可以监听当前手指的位置,可以计算出滑动的距离,当前速度。通过View的scrollTo、scrollBy方法可以直接将画图移动到目标位置。如果想要手指离开后画布根据瞬时速度继续滑行的效果,可以用Scroller的fli
2016-05-25 16:34:34
2505
原创 可滑动弹出菜单的自定义Layout,基于ViewGroup
实现原理通过自定义ViewGroup重写onLayout方法监听onTouchEvent方法当手指在屏幕滑动时重新对contentView、menuView进行layout。实现过程1、重写onMeasure注意:在OnMeasure方法中调用measureChildren(widthMeasureSpec, heightMeasureSpec),否则子View 尺寸将
2016-03-23 17:08:04
542
原创 Android Service远程调用 代码示例
Server端:1、在AndroidManifest注册远程服务 <service android:name=".NormalService" android:enabled="true" android:exported="true" android:label="NormalService"
2016-02-18 10:36:06
587
原创 Android 通过Handler进行主线程子线程通信 代码示例
public class MainActivity extends Activity {private Handler mainThreadHandler = new Handler(); //主线程的Handler,无需调用Looper.prepare()HandlerThread handlerThread;@Overrideprotected void onCreat
2016-02-18 10:21:50
750
原创 android自定义view——温度计
public class Themometer extends ImageView { private Paint mPaint; private int height, width, circle_radius; private int COLOR_BROWN = Color.parseColor("#A5937B"); private int COLOR_YELLOW = Color
2015-09-22 19:10:38
5418
转载 Android 禁止输入emoji表情符号
public class EmojiEditText extends EditText {// 输入表情前的光标位置private int cursorPos; // 输入表情前EditText中的文本private String inputAfterText; // 是否重置了EditText的内容private boolean resetText;private Conte
2015-06-29 14:23:38
6154
原创 适配器模式
1、类的适配器模式:有一个待适配的类Source,目标接口Targetable,通过Adapter将Source的功能扩展到Targetable。实现:Adapter继承Source拥有Source的方法,去适配Targetable。2、对象适配器模式:Adapter不继承Source,只是持有Source的实例,用Source的方法去适配Targetable。3、接口适配模式:不想实现目标接...
2015-01-28 11:25:01
224
原创 工厂模式
什么是工厂模式? 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例 对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽...
2015-01-15 11:24:17
128
原创 AsyncTask execute 为单一模式 executeOnExecutor 可以为并发模式
转自 http://blog.youkuaiyun.com/liubin8095/article/details/12705479 总结:AsyncTask 本质是用handler更新界面;在3.0版本以后,它在AsyncTask中是以常量的形式被使用的,因此在整个应用程序中的所有AsyncTask实 例都会共用同一个SerialExecutor;默认情况下SerialExecutor模仿的是...
2014-12-15 18:26:40
272
ListView避免多线程加载一个同一资源
当我们的ListView中的Item包含图片,而且这些图片是同一资源,我们用多线程去加载图片,这时候可能就发生了这种情况。比如线程是人,第一个人去做加载图片到缓存的工作,还没做好时第二个人要这同一张张图,结果缓存还没有这张图,于是第二个人也去加载图片到缓存。。以此类推,同时可能有N个人在加载同一张图,N取决于图片没加载到缓存前,可见的Item数量。于是针对这种情况进行细化同步,避免发生。...
2014-12-12 00:02:06
219
原创 ArrayList与二进制数组的转换,对象序列化与序列化还原
有的时候我们想将对象保存到数据库中,就需要将对象序列化为二进制数组,然后保存到数据库。从数据库提取出二进制数组,还需要将其还原为对象。 本例中ArrayList已经implements Serializable,其他对象需要实现此接口才能序列化 1、从ArrayList序列化为二进制数组/** * 将ArrayList转化为二进制数组 * * @pa...
2014-12-11 13:41:12
572
原创 Editext 监听光标位置
因为项目需要,需要实时监听光标的位置变化,网上提出的用TextWatcher和onTouchListener中调用contentText.getSelectionStart()都是获取的上一次位置。 只要重写onSelectionChanged就可以获取最新的光标位置了。 public class NoteContentEditText extends EditText {...
2014-12-10 17:41:22
519
原创 ListView 实现阻尼回弹效果 并去除边缘阴影
我们使用ListView将位置拖到顶部和底部默认是没有回弹效果的,为了增加这个效果,方法如下: 1、开启overScrollMode为always 在布局中 android:overScrollMode="always" 或在代码中 setOverScrollMode(View.OVER_SCROLL_ALWAYS); 2、继承listview 覆盖overScrollBy方法,并且利用反射...
2014-12-10 15:19:34
536
原创 自定义日历 ViewPager FragmentStatePagerAdapter 自定义View
一直想给最近在做的笔记本加一个日历查找的功能,但是googleyuans
2014-10-23 21:39:34
1956
原创 Listview 异步加载图片 快速滑动发生图片错误的解决办法 复用convertview
参考 http://www.3lian.com/edu/2013/08-03/86585.html说明了复用convertview的后果,病ge
2014-09-29 23:01:08
1111
转载 android的selector背景选择器
关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时
2013-12-26 17:27:40
738
转载 Intent Action
本文介绍Android中Intent的各种常见作用。1 Intent.ACTION_MAINString: android.intent.action.MAIN标识Activity为一个程序的开始。比较常用。Input:nothingOutput:nothing activity android:name=".Main" android:label
2013-12-20 11:38:28
873
转载 IntentFilter
当Intent在组件间传递时,组件如果想告知Android系统自己能够响应和处理哪些Intent,那么就需要用到IntentFilter对象。 顾名思义,IntentFilter对象负责过滤掉组件无法响应和处理的Intent,只将自己关心的Intent接收进来进行处理。 IntentFilter实行“白名单”管理,即只列出组件乐意接受的Intent,但IntentFilter只会过滤
2013-12-20 10:21:08
733
转载 显式intent和隐式intent区别
android当中显式intent和隐式intent的区别定义:Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。 显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。
2013-12-20 10:11:52
892
转载 android中为什么使用service?
把Service等同于thread或process是一个非常常见的误解。需要强调又强调的第一点是,Android的Service是一个Context,并不必然等于一个额外的thread。如果你有仔细看文档(Service | Android Developers),里面专门强调A Service is not a separate process. The Service object
2013-12-03 13:10:53
1248
C# ADO.NET SQL做的选课课程设计 带数据库备份
2012-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人