
android学习
文章平均质量分 60
薛昭君
每天都在进步
展开
-
Android 给你的应用添加下拉刷新功能
首先,你的吧 SwipeRefreshLayout 作为你 ListView 或者是 GridView 的父对象,然后实现刷新的行为第一步,添加一个 SwipeRefreshLayout Wight大概如下:<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/r原创 2016-07-29 01:26:34 · 346 阅读 · 0 评论 -
Android 响应下拉刷新
响应下拉手势当你做出一个下拉手势的时候,系统显示 进度条指示器,并且调用你的回调方法,数据更新操作就在这个回调方法里具体来说,就是要实现 SwipeRefreshLayout.OnRefreshListener 并且实现它的 onRefresh() 方法你应该将你的更新方法 放在一个独立的方法中,然后在 onRefresh() 中调用这个方法。示例:mySwipeRefreshLayout.setO原创 2016-07-29 15:53:05 · 338 阅读 · 0 评论 -
Android 添加一个搜索功能
从android3.0以后,使用SearchView组件,可以在app bar添加一个搜索功能,你可以定义SearchView什么时候显示,什么时候不显示。添加SearchView在App Bar上首先你要新建一个 menu 文件,(所有要在bar中显示的,都必须建立一个menu文件),<menu xmlns:android="http://schemas.android.com/apk/res/a原创 2016-07-29 21:39:53 · 2572 阅读 · 0 评论 -
Android App bar详解
在大部分基本的表单中,都有一个 在一边显示Activity的标题,另一边显示overflow menu 的actionbar 如下:从 android 3.0 开始,所有的Activity都使用默认的主题,将 action bar 作为 app bar,但是不断增减的bar的特性,原生的 Action bar在不同的 Sysytem中并不一致。相比之下,最新的一些特性都包含在了 Toolbar 的支原创 2016-07-30 14:59:01 · 4170 阅读 · 0 评论 -
Android 显示 pop-up message
之前一直是使用的是 Toast 来给用户进行简短的通知,但是现在的趋势是使用 snackbar 来取代 Toast,我们来了解一下 snackbar 的 使用Snackbar 是在 Design Support Library 中,添加代码 com.android.support:design:24.1.1 到gradle文件中使用 Snackbar 来显示信息Snackbar可以和view关联,如原创 2016-07-30 17:04:28 · 1352 阅读 · 0 评论 -
Android Zxing 读取本地图片不得不说的坑
在使用Zxing库来实现 二维码生成,扫描的时候。都是相当简单的,但是 在读取本地图片上,我遇到了一些问题,把问题和解决的方法贴出来,希望能为以后提供参考:先贴几个部分的代码:如果有尝试写过,那么第一个代码是很好理解的。 这个 onActivityResult 方法在 CustomScanActivity(也就是自定义的扫描的Activity)中,,用于处理从相册中文件,请看一下我的注释 @Ove原创 2016-08-04 15:46:29 · 8859 阅读 · 5 评论 -
Android (非常重要)如何实现自定义的View
一个设计的好的自定义view,有着丰富的特性和简单的接口。它可以有效的使用cpu和内存。所以一个自定义view必须满足以下几点:符合Android的规范提供可以和Android XML 布局相适应的 自定义的 属性可以发送访问事件兼容不同的android平台android 框架提供了一些基本的类和XMl标签来帮助你创建一个合适的自定义view, 那么首先如何创建一个View的类 (Clas原创 2016-08-02 00:56:50 · 3641 阅读 · 0 评论 -
Android ExpandableListView使用指南
项目有个需求,实现的要求大概如下:(图片来源于谷歌)我搜索了好几天,如何将多个LIstview放在一起显示,甚至搜出 将两个Listview放在同一个ScrollView中的解决办法 ,但是 ScrollView 和 Listview 是官方声明是不可以一起使用的,会大大的影响性能。终于在小伙伴的提醒下,知道还有这么一个好东西!先推荐我在学习过程中的博客链接:非常全面的一篇博客(英)要使用一个 Ex原创 2016-08-05 16:39:02 · 480 阅读 · 0 评论 -
Android 控制系统UI
在实际应用中我们经常要控制系统的UI,比如顶部栏等,来达到预期的效果,如何控制系统UI呢? 让我们一探究竟使 系统的Bar 不可见让 System bar 变的不可见,只有在 Android 4.0 之后的版本可以。这种效果并不是完全的隐藏 System bar,而是 dim,就是当没有触摸事件的时候,慢慢隐藏,一旦用户产生输入,则再次显示 reveal渐隐使用 以下代码 达到目的:// 代码中设定原创 2016-08-02 16:47:52 · 4626 阅读 · 0 评论 -
257.[Leetcode]Binary Tree Paths
之后的题都是用java,以练习java的语法和库的使用我的算法,递归:// List interface 问题 public class Solution { public List<String> binaryTreePaths(TreeNode root) { // 这个list用于存储所有可能的路径 List<String> paths = new Ar原创 2016-08-06 21:58:38 · 398 阅读 · 0 评论 -
20.[Leetcode]Valid Parentheses
做括号匹配,一开始想到的肯定就是最直接的办法,使用栈:使用栈的时候一定要注意,考虑 栈会不会在运行时为空public class Solution { public boolean isValid(String s) { Stack<Character> ps = new Stack<Character>(); int size = s.length();原创 2016-08-09 01:36:10 · 294 阅读 · 0 评论 -
Android 自定义View -- 简单的倒计时器
截图如下:功能:点击begin 可以开始倒数,一开始的计数大小可以设置点击pause 可以暂停点击stop 可以停止颜色,大小都可以自定义。我的项目地址 实现此项目大部分代码参考的项目RingProcessBar:非常好,也非常简单,基本试着做一遍就可以大概掌握简单自定义view实现的流程以下是我总结的实现步骤:第一步:在values中创建属性文件原创 2016-09-01 19:42:47 · 1513 阅读 · 0 评论 -
Android[LeetCode] 创建一个后台程序
IntentService 类就提供了直接的后台线程操作。不过它也是有限制的:不能直接与用户操作交互,如果要将 结果显示 在UI,你必须把他们送到 Activity工作请求是有顺序的,如果一个工作正在进行,此时你发起一个请求,那么请求会被搁置,直到第一个操作结束在 intentService 中的操作是不可以打断的不过,大部分情况下,简单的后台工作都是可以用 intentService 完成原创 2016-08-13 17:15:44 · 482 阅读 · 0 评论 -
Activity 后台载入数据
如果直接的 在一个 ContentProvider 中搜索想要显示的数据,那么需要花费很多时间,很有可能造成卡顿,ANR你也可以异步的在后台 用一个对象 来载入 然后当完成的时候 在重新和你的 Activity 建立联系我们使用的对象就是 CursorLoader ,CursorLoader 可以在数据变更的时候,自动的重新运行CursorLoader 在 v4 的支持库中使用CursorLo原创 2016-08-13 19:24:43 · 692 阅读 · 0 评论 -
Android 使用RecycleView和CardView
第一步,添加依赖:compile 'com.android.support:cardview-v7:24.+'compile 'com.android.support:recyclerview-v7:24.+'第二步,CardViewCardView (继承于FrameLayout) 用来做 item 的,在res/layout/ 目录下添加一个xml文件,代表item的布局<?xml versi原创 2016-09-06 14:18:00 · 1054 阅读 · 0 评论 -
Android Studio Ndk 基础篇
非官方方法方法1 方法2看了很多的博客,android studio 的ndk使用,虽然用倒是可以用,但是既然as现在集成的这么好,不如试试官方给的办法好了基础篇(平台:windows下)第一步:下载Ndk与build工具在一个打开的项目里,选择 Tools > Android > SDK Manager选择 SDK Tools点击 LLDB,Cmake,NDK , 点击 applyNd原创 2016-10-20 15:52:51 · 375 阅读 · 0 评论 -
[Android]使用Stetho调试数据库
上一篇写到如何导出数据库,但是实际操作起来确实是超级无敌不方便!今天给大家推荐的神器,是facebook出品的调试工具Stetho!官网简单到只需两步!1 添加对应库到项目中去,并初始化 compile 'com.facebook.stetho:stetho:1.4.1'public class MyApplication extends Application { public void o原创 2017-03-28 11:42:33 · 1220 阅读 · 0 评论 -
Android 布局
Normallayout_width = "fill_parent/wrap_content" // 同heightandroid:layout_centerHorizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignP原创 2016-06-20 17:28:23 · 264 阅读 · 0 评论 -
Android 在通知中显示进度条
显示进度的核心方法 setProgress() , 正如一般使用中所见,有显示进度百分比的 和 显示正在进行的两种进度条:显示 fixed-duration Progress indicater(持续时间固定的进度指示器)使用 setProgress(max, progress, false) 将进度栏添加到通知,然后发出通知,随着操作的继续进行,递增process并更新通知 一般把 max 设置原创 2016-07-27 13:31:36 · 2945 阅读 · 0 评论 -
Android 权限
转载自作者:houfeng 出处:http://houfeng.cnblogs.com 允许读写访问”properties”表在checkin数据库中,改值可以修改上传 允许一个程序访问CellID或WiFi热点来获取粗略的位置 允许一个程序访问精良位置(如GPS) 允许应用程序访问额外的位置提供命令 允许程序创建模拟位置提供用于测试 允许程序访问有关GSM网络信转载 2016-05-11 20:06:49 · 329 阅读 · 0 评论 -
Android学习--《Fragment》
概要:fragment可以看作是一个子acitity,它具有自己的生命周期,与输入事件可以在不同的activity里复用,是activity模块化的一部分 可重用,模块化的UI组件创建:必须重写的回调方法 onCreateView(), 用来定义布局示例:import android.os.Bundle;import android.support.v4.app.Fragment;import原创 2016-05-12 15:06:14 · 329 阅读 · 0 评论 -
Android学习--《数据的保存》
概述Android的数据保存可以分为3种情况保存在preference (小的键值对集合)保存在文件 (流式顺序数据,如图片文件,网络交换的数据等)保存到数据库DB保存在Perference两种方法:getSharedPerference() 多个shared perference文件Context context = getActivity();SharedPreferences sha原创 2016-05-12 17:26:24 · 321 阅读 · 0 评论 -
Android学习 -- 《关于Activity》
activity的生命周期由以下 名称 注释 Created 暂态,一瞬间,用于创造 started 暂态,一瞬间,可见 resumed 可交互,最顶层 paused 半透明,被遮挡,不执行代码 stoped 不可见,状态被保留 调用关系如下:指定launcher一个app里有多个activity的,哪一个第一个加载呢?<activity andro原创 2016-05-11 21:40:25 · 433 阅读 · 0 评论 -
Android学习 -- 《AndroidManifest》
本质:整个应用的主要配置清单文件,记录应用的相关配置信息包含全局 包名版本号组件 四大组件权限以下是我新建的一个app的manifest.xml文件<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package=原创 2016-04-27 01:41:55 · 291 阅读 · 0 评论 -
Android学习 -- 《Intent app间通信》
概述:Android中的一个主要特性就是可以用 action 和 intent 使当前的app跳转到其他的app。我们使用intent不止是可以在activity之间切换,还可以在不同app的activity之间切换intent可以通过:定义一个显式的intent制定需要启动组件的类名定义一个隐式的inten来唤起不同的app 必须是隐式的才可以启动其他app建立隐式(implicit)的i原创 2016-05-12 20:20:18 · 493 阅读 · 0 评论 -
Android学习 -- studio的快捷键们
Loglogt 自动生成对应Activity的的TAGlogd 自动生成log信息logm 输出一些相关参数logesettingsetting keymap 修改快捷键代码提示与查看ctrl + Alt + sapce 代码提示ctrl + shift + up/down 移动本行代码上下ctrl +D 复制本行代码ctrl + Y 删除本行alt + up/down 移动到下一个 方原创 2016-04-27 02:24:41 · 277 阅读 · 0 评论 -
Android 创建带有tab的滑动页面
首先需要使用支持库的空间 Viewpager如何给 viewpager 添加子元素(页面)需要将此布局和 pagerAdapter 挂钩,一般我们用以下的两种 adapter :FragmentPageAdapter 这是最简单基本都使用,当只要几个简单页面的时候可以使用FragmentStatePagerAdapter 这个用在当 页面数量 不定 或者 很多 的时候,它会销毁用户不在使用的页面原创 2016-07-24 17:57:39 · 399 阅读 · 0 评论 -
Android 创建抽屉导航
抽屉导航非常火,非常好用,但是怎么实现呢?创建一个DrawerLayout的布局首先将 DrawerLayout 作为 根view,然后在其中添加两个子view:这两个子view一上一下(固定的),分别对应的 主体内容 和 隐藏内容(也就是drawer) <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas原创 2016-07-24 22:50:33 · 341 阅读 · 0 评论 -
Android home/up 按钮
可能看了标题也不知道我说的是什么?是!这个!这个按钮 官方称为 up navigation指明父activity向上回溯的操作首先你得有一个“上”,这个上,就是指明的 父activity。也就是不管你是从什么地方打开的,你得 回溯动作一定是返回到你的父activity如何指明呢?<activity android:name=".ChildActivity" ... android:paren原创 2016-07-25 23:39:45 · 1787 阅读 · 1 评论 -
Android 使用Zxing实现二维码的生成,扫描
在项目中要使用到二维码的相关内容,百度(原谅我还在用)之后得知一半都是使用Google的开源库 Zxing,但是网上多半的使用教程都是比较早的,这里给出我总结的一些基础代码和使用规则:首先要一定要先去官网看看:github-Zxing官方库的地址 github-zxing-android-embedded 一个非常好用的android工具1. 如何导入如果是使用android studio, 那么原创 2016-07-26 14:37:11 · 48792 阅读 · 9 评论 -
Android Back回退按钮
上一节中讲了 up 按钮, up按钮是在UI中实现的。上一节中有时候还误称为 back。但是,真正的back按钮,其实是不需要再android UI中实现的,因为所有的android设备都有,(左下或者右下)一般来说,back按钮就是维护一个简单的回退栈,但是在某一些情况下,需要指明back按钮的行为,以达到最好的用户体验哪些情况下需要指定back按钮的行为非常典型用户通过 通知,桌面组件,或者原创 2016-07-26 00:43:21 · 6834 阅读 · 0 评论 -
创建一个Notification (通知)
这个例子是基于Notification.Builder类来实现的,最低限度的,一个Builder对象应该包括以下:一个小icon一个标题 title一个文本NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notificatio原创 2016-07-26 19:32:01 · 2221 阅读 · 0 评论 -
Android 开始一个activity的同时保留导航
首先是两个基本概念:Regular activity 常规 通知 : 处于你的应用的工作流中(一般都是有父activity的)先退到app,再退到主屏幕Special activity 特殊 通知 : 只能从Notification中打开的activity,直接退到主屏幕设置常规的 activity pendingIntent要设置一个开启Activity的 PendingIntent,需要两原创 2016-07-27 11:14:09 · 1328 阅读 · 0 评论 -
Android 更改一个更新
如果你需要对一个同样类型的事件做多次的通知发布的话,那么你可以考虑修改已有的发布内容修改一个Notification还记得我们为Notification设置的Id吗?就是为了能让Notification更新mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE原创 2016-07-27 11:29:01 · 243 阅读 · 0 评论 -
Android 使用大号的通知
Notification 一般是两个形式出现的:一种是普通形式一种是bigView形式:但是 big View 只在Notification扩展的时候显示,也就是说, 只在 此Notification 在drawer的最上面,或者是用户点击之后,才会扩展。使用 BigView 的目的在于,让用户不需要打开 应用,就可以完成交互构造一个Bigview (闹钟样例)构造 忽略 和 稍后 两个将会出现在原创 2016-07-27 12:05:20 · 305 阅读 · 0 评论 -
[Android]如何在不root的情况下,查看sqlite数据库
心得 : 最好还是用google来查东西Stackflow原问题答案adb shell$ run-as 你的包名 $ cp ./databases/你的数据库名 /sdcard/$ exit$ exitadb pull /sdcard/你的数据库名然后数据库文件就会导出到当前的命令行所在目录下,比如我的包名为 com.example.a123.test 我的数据库名为 Test.db当原创 2017-03-25 19:13:22 · 7066 阅读 · 1 评论