![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android学习
文章平均质量分 55
Hugo Gao
这个作者很懒,什么都没留下…
展开
-
Handle的两种作用解析
按照我现在的理解的话,Handle我认为它是Android系统的传送器,文档中是这么的定义的A Handler allows you to send and process Message and Runnable objects associated with a thread's MessageQueue. 他可以在子线程中携带信息跳转到UI线程进行UI刷新,也可以携带信息到任意一个实现了Run原创 2016-09-09 19:02:58 · 6690 阅读 · 0 评论 -
初探Android 6.0动态权限管理
我的APP简记在豌豆荚上线之后,我叫同学帮我下载测试一下,结果却惊奇的发现在我的小米2s测试机上跑得好好的,在他们同样是小米,同样是MIUI8的手机上却不能调出拍照,会直接退出程序,也就是传说中的闪退,于是我把手机连上Android Studio调试,结果出现了这样的Log:open failed: EACCES (Permission denied); 后来我想到小米2s和小米5虽原创 2016-11-01 09:37:53 · 567 阅读 · 0 评论 -
Android调用相机和相册获取图片并存入数据库(反思)
最近在做项目的时候有一个需求,是要从相机中或相册中获取图片,而且还要将其存入SQLite,最开始的时候我想的是直接将图片存入数据库,但是后来在Google上发现不行,sqlite不支持这种类型,但是我看到了它支持Blob这种类型,也就是二进制,这种类型可以储存图片和视频,既然最基本的储存解决了,那么就开始动手写代码了。直接用模板代码调用相机和相册调用相机和相册是有模板代码的,可以考虑以后把它写成一个原创 2016-10-27 19:53:33 · 6996 阅读 · 0 评论 -
RecyclerView和CardView的结合使用
现在貌似还在使用ListView貌似就有点out了,最近在做项目的时候发现了还有RecyclerView和CardView结合使用的优雅做法,最后做出来效果: 添加依赖 compile 'com.android.support:cardview-v7:23.1.1' compile 'com.android.support:design:24.0.0'每一个Item项CardView的布局Rec原创 2016-09-30 21:09:59 · 810 阅读 · 0 评论 -
创建复合控件
创建复合控件是自定义View的一项基本技能,这里要介绍的不是简单的将控件在xml文件中拖到一起,而是可以自定义属性的。这里就以自定义的一个TopBar来当作例子,这个topbar有左右两个按钮,以及中间有个标题。创建自定义属性既然说到了自定义属性,那么我们就要自己写一个文件来描述我们需要自定义的属性。在Values文件夹下创建attrs.xml文件,我们就将属性写在里面。<resources>原创 2016-10-13 19:48:30 · 296 阅读 · 0 评论 -
SQLite数据库的使用之使用内置函数
光会使用SQL语句来操作数据库是完全不够的,虽然看起来非常的极客范,但是你想想,万一少打一个空格,那你的程序就直接GG了,所以接下来学习的使用SQLitedatabase类的内置函数就非常关键了。数据库创建的数据库的创建和之前还是一样的,这个没法用内置函数来创建。 SQLiteDatabase db = openOrCreateDatabase("stu.db", MODE_PRIVATE, nul原创 2016-08-31 16:23:09 · 983 阅读 · 0 评论 -
GestureDetector识别手势滑动
今天学习了使用GestureDetector进行手势识别,如果要进行手势识别,那么就必然要知道Android系统是如何识别动作的,见下图 : 我就在布局中放一个ImageView,就在这张图片上滑动。触发MotionEvent事件并监听MotionEvent事件是你手一放上屏幕就出发了的,由onTouchListener监听,由于我是在图片上进行滑动的所以这个监听器由imageview注册img.原创 2016-09-08 15:34:04 · 480 阅读 · 0 评论 -
Service的两种启动方法
Service是Android的四大组件之一,四大组件每一件都要在AndroidManifest中进行注册。, Service可以脱离于Activity运行,也就是说不受Activity的控制,也可以和Activity绑定在一起,与Activity共存亡。这就是Service的两种启动方法。下图是Service的生命周期。Start方法启动首先创建一个Service类,继承自Service,取名就叫原创 2016-09-07 20:51:47 · 635 阅读 · 0 评论 -
80行代码搞定菜单展开动画
其实实现动画效果是非常简单的,下面就使用ObjectAnimator来实现一个点击按钮向下展开菜单项的动画。制作布局文件首先我们要把我们的图片素材全部放到到一个帧布局中,将菜单键放在最上面。<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=原创 2016-09-17 16:55:31 · 529 阅读 · 0 评论 -
onCreateContextMenu创建上下文菜单
所谓的上下文菜单就是一个你长按一个view,就会弹出一个菜单栏的东西,这玩意儿的使用非常简单。我们用listview来演示。创建上下文菜单由于Listview的所有选项名称都是放在一个List中的,所以我们需要自定义一个List如ArrayList来存放我们所有的选项名。 private ArrayList<String>getDate() { ArrayList<Strin原创 2016-09-17 09:18:47 · 720 阅读 · 0 评论 -
Android之自定义View
自定义view是Android的一个重要技能,能自己订制出各式各样的图案。起大致步骤就是下图(来自慕课网).第一步—–设计需要的属性所谓设计需要的属性就是指在layout文件里一个控件拥有的各种属性,在values文件里新建一个xml文件叫”atts“,加入declare-styleable 标签,name取自己定义的view的名字。完整代码如下<resources> <declare-st原创 2016-09-04 20:02:20 · 284 阅读 · 0 评论 -
AlertDialog的几种用法
AlertDialog就是在屏幕上出现一个对话框,并且要获取当前Activity的焦点,也就是说只能在对话框中进行操作。单调的确认对话框这是最简单的一种dialog形式,可以在对话框里加入图片,标题,呢容,以及两个按钮。dialog都是用AlertDialog.Builder builder = new AlertDialog.Builder(this); 来进行创建的,需要在builder中定义好原创 2016-09-14 15:45:08 · 6664 阅读 · 1 评论 -
Android数据储存之文件读写
Android的文件读写主要是通过操作输入输出流来完成的,例如这个例子,我要在EditText中输入一段字符,并在Textview显示出来。<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="200dp"原创 2016-09-02 09:33:33 · 268 阅读 · 0 评论 -
SQLite数据库的使用之运用SQL语句
数据库对于仍和一个数据量较大的程序来讲都是非常重要。这是一个非常轻量级的数据库,对于每个程序来讲,都有一个私密的数据库,别的程序看不到,必需要用内容提供器才能给别的app使用,所以说是十分安全的,SQLite没有用户。今天学习了用execSQL来进行SQlite的插入查询。SQLite的创建SQLite的创建非常简单,使用一个SQLiteDatebase类即可 SQLiteDatabase db =原创 2016-08-30 21:10:21 · 434 阅读 · 0 评论 -
SharedPreferences的使用
SharedPreferences的使用简述SharedPreferencesSharedPreferences是一个及其方便的数据存储类,以键值对的形式存储在一个XML文件里,适合储存一些app的配置信息,相比SQLite的优点呢就是操作方便,你可以很容易的用SharedPreferences存储文件SharedPreferences对象创建方法创建SharedPreferences对象有两种方法原创 2016-08-30 15:23:25 · 354 阅读 · 0 评论 -
android的消息处理机制(图+源码分析)——Looper,Handler,Message
转载转载 2016-09-10 17:46:02 · 195 阅读 · 0 评论