Android
文章平均质量分 61
小欣儿
我性格开朗,喜欢敲代码,喜欢和志同道合的朋友们交流。
展开
-
Android——Fragment 布局使用 fitsSystemWindows = true 无效解决方案
最近遇到一个奇葩问题,导航栏多个Fragment沉浸,fitsSystemWindows = true只在一个Fragment有效,其他Fragment都是无效的(即:toolbar和状态栏重叠)这种问题产生的原因:当第一个Fragment添加到Activity中的时候,Activity寻找出有fitsSystemWindows的子布局为其预留出状态栏的空间,其实就是设置一个padding,而其他Fragment添加到Activity中的时候,因为状态栏空间的适配已经被消费过一次了,Activity并不会转载 2022-05-24 15:08:10 · 1871 阅读 · 0 评论 -
Android——String.format()方法使用
format格式说明符语法: %[argument_index$][flags][width][.precision]conversion 语法解析:[argument_index$]: "1$" 第1个参数[flags]: "0" , "" 填充字符,数字用"0"或"",字符串用""[width]: "10","-10" 最后总宽度10,正数表示在前面添加,负数表示在后面添加。负数的情况一般只在字符串时才用[.precision] : ".3" 小数转载 2022-05-04 10:43:31 · 4456 阅读 · 0 评论 -
Android——横幅通知
横幅通知,也称为提醒式通知,效果如下图:这个效果在QQ,微信,钉钉等一些主流的App当中,大家一定很熟悉,今天就来说说如何实现。可能会触发提醒式通知的条件有如下3种:用户的Activiity处于全屏模式(应用使用fullScreenIntent)通知的优先级很高,且在搭载Android 7.1(API级别25)及更低版本的设备上使用铃声或震动。在搭载Android 8.0(API级别为26)及更高版本的设备上,通知渠道的重要程度比较高。但是现实往往是残酷的,当你按照要求照做之后发现8.0以原创 2021-06-25 18:00:39 · 7496 阅读 · 1 评论 -
Android——友盟自定义通知声音
最近接到一个需求,如题,给友盟推送添加定制化声音。描述很简洁,由上图可知,本次需求的重点工作是8.0以上版本的兼容问题。友盟给出的示例代码如下:由以上代码可知,其实就是设置一个自定义Notification,但是以上代码用在8.0以上系统中并不可行。原因大家应该都清楚了,8.0以上通知栏新增了一个NotificationChannel的特性,如果没有设置channel通知渠道的话,就会导致通知无法展示。设置本地声音现在再来回到我们本次需求的重点:定制声音。通过以上分析我们已经知道了友盟自定义声音原创 2021-05-19 17:51:10 · 1628 阅读 · 1 评论 -
Android——RecyclerView.scrollBy源码分析
最近有个需求是RecyclerView左右滚动时,如果焦点View超过屏幕中间就把焦点View滚到屏幕中间。实现思路为获取焦点View在屏幕上的坐标,并根据屏幕宽度/2来计算滚动距离。代码如下:FocusLinearLayoutManager layoutManager = (FocusLinearLayoutManager) provincesList.getLayoutManager();int firstVisiblePos = layoutManager.findFirstVisibleItem原创 2020-05-28 17:50:28 · 2224 阅读 · 0 评论 -
Android——详解Paint的setPathEffect(PathEffect effect)
一、setPathEffect()这个方法一看就和path有关,顾名思义,它就是给path设置样式(效果)的。PathEffect这个路径效果类没有具体的实现,效果是由它的六个子类实现的:这六个子类分别可以实现不同的路径效果:下面,我们来用代码来具体实现一下。二、测试代码2.1 代码框架首先初始化paint和path,然后配置相关属性,最后作画。package com.kale.c...转载 2019-11-19 18:47:40 · 1698 阅读 · 0 评论 -
Android——TextView 富文本之 ClickableSpan
前言ClickableSpan可以让我们在点击TextView相应文字时响应点击事件,比如常用的URLSpan,会在点击时打开相应的链接。而为了让TextView能够响应ClickableSpan的点击,我们需要为它设置LinkMovementMethod,但是这个LinkMovementMethod又有着很大的坑,接下来就总结下这些坑和我的解决办法。LinkMovementMethod的坑...转载 2019-11-19 18:35:34 · 2189 阅读 · 0 评论 -
Activity-RelativeLayout
指定widget在container的相对位置,包括:android:layout_alignParentTop, android:layout_alignParentBottom, android:layout_alignParentLeft, android:layout_alignParentRight, android:layout_centerHorizontal, android:la转载 2014-11-10 16:55:57 · 518 阅读 · 0 评论 -
android:layout_gravity和android:gravity的区别
1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左转载 2014-11-10 15:23:13 · 432 阅读 · 0 评论 -
android EditText中的inputType
android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式。android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。android:inputType="phone" />//文本类型,多为大写、小写和数字符号。原创 2014-11-12 20:48:02 · 393 阅读 · 0 评论 -
Android 如何获取经纬度
移动是手机与手持设备的最大特点,可以通过Eclipse的DDMS视图,模拟设备的位置变化,改变经纬度后,点击send,然后运行程序,在应用程序中,动态的获取设备位置,然后显示当前的位置信息。 获取位置信息分为三步: 1.添加系统权限,来支持对LBS硬件的访问 Java代码: 2.得到系统服务的LocationManager对象 Java代码原创 2014-11-25 15:28:05 · 471 阅读 · 0 评论 -
回调函数
第一个问题:*******************************************************************************其实回调就是一种利用函数指针进行函数调用的过程. 为什么要用回调呢?比如我要写一个子模块给你用, 来接收远程socket发来的命令.当我接收到命令后, 需要调用你的主模块的函数, 来进行相应的处理.但转载 2014-11-25 17:35:13 · 383 阅读 · 1 评论 -
Android广播接收机制(BroadcastReceiver)
和活动、服务及ContentProvider一样BroadcastReceiver也是Android组件之一,它是可以对客户端发送的广播消息作出响应。消息本身是一个Android广播Intent,广播消息可以被多个接收程序接收。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条原创 2014-11-25 15:31:15 · 439 阅读 · 0 评论 -
布局中的wrap_content和fill_parent以及match_parent
fill_parent 是让控件宽或者高占全屏wrap_content是让控件的高或宽仅仅把控件里的内容包裹住而不是全屏 1 fill_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏原创 2014-11-26 10:08:50 · 847 阅读 · 0 评论 -
Activity和Intent机制学习笔记
ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期(见http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态)。对于Activity,关原创 2014-11-26 18:06:48 · 392 阅读 · 0 评论 -
Android:Layout_weight的深刻理解
layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空 间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体 layout_weight值和在其它视图屏幕布局的layout_weight值中所占的原创 2014-11-26 10:24:38 · 389 阅读 · 0 评论 -
Android中的Handler总结
一、Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要原创 2014-11-21 15:42:35 · 409 阅读 · 0 评论 -
Android Bundle类
Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.”类继承关系:java.lang.Object android.os.BundleBundle类是一个final类:public final classBundleextends Objecti转载 2014-11-26 17:42:44 · 438 阅读 · 0 评论 -
惠锁屏详细用法
惠锁屏怎么玩|浏览:2048|更新:2014-09-28 14:30123456分步阅读都说现在是移动智能时代,几乎人人都拥有一部智能手机,手赚软件也在这两年纷纷涌现,对于经常接触的朋友来说不算陌生,可对于没接触过的朋友就会心生疑惑:手赚软件到底应该怎么玩?今天就与大家一起分原创 2014-11-26 14:53:15 · 1068 阅读 · 0 评论 -
Android中使用SQlite进行数据操作
本文参考了这篇文章:http://www.ibm.com/developerworks/cn/opensource/os-cn-sqlite/简介: SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对数熟悉 SQL 的开发人员来时,使用转载 2014-11-27 17:53:34 · 484 阅读 · 0 评论 -
Android Vibrator的使用
Android手机中的震动由Vibrator实现。设置震动事件,需要知道其震动的时间长短、震动的周期等。在Android Vibrator中,震动的时间一毫秒计算(1/1000秒),所以如果设置的时间值太小,会感觉不出来。通过调用Vibrator的vibrate(long[] pattern, int repeat)方法实现。前一个参数为设置震动的效果的数组,第二个参数为原创 2014-11-21 15:09:48 · 570 阅读 · 0 评论 -
Android 调试之 Log和LogCat的详解
Android 的调试信息分为五类: VERBOSE 类型调试信息,verbose啰嗦的意思 DEBUG 类型调试信息, debug调试信息 INFO 类型调试信息, 一般提示性的消息information WARN 类型调试信息,warning警告类型信息 ERROR 类型调试信息,错误信息 Android Log提供添加原创 2014-11-21 16:02:34 · 453 阅读 · 0 评论 -
android json解析及简单例子
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.orgJSON Vs XML1.JSON和XML的数据可读原创 2014-11-24 15:17:59 · 382 阅读 · 0 评论 -
Android解析XML文件
一、在Android应用中的XML文件来源1、本地xml文件 本地XML文件可以放在应用根目录assets文件夹、res/xml、res/raw、SDcard卡、应用的data目录等;除res/xml可直接通过getXml(int id)获取XML文档,返回一个解析器对象(XmlResourceParer:XmlResourceParer是XmlPullParser的子类),其它转载 2014-11-24 18:04:46 · 473 阅读 · 0 评论 -
Android系统中的服务管理类(ActivityManager、PowerManager(电源管理)、AudioManager(音频管理)。PackageManager(管理应用程序包))
Android系统zhon服务管理类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理)。PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。原创 2014-11-24 17:57:39 · 681 阅读 · 0 评论 -
Android图像处理之Bitmap类
Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。本文从应用的角度,着重介绍怎么用Bitmap来实现这些功能。 一、Bitmap的生成1.1 BitmapFactory decode出Bitmap Bitmap实现在android.graphics包中。但是Bitmap类的构造函数原创 2014-12-01 10:58:39 · 466 阅读 · 0 评论 -
Android -- Looper.prepare()和Looper.loop()
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。(1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。) Loope原创 2014-12-02 10:32:24 · 449 阅读 · 0 评论 -
Android 中关于 【Cursor】 类的介绍
关于 CursorCursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。关于 Cursor 的重要方法:close()关闭游标,释放资源copyStringToBuffer(int columnIndex, CharArrayBu原创 2014-12-03 11:03:47 · 495 阅读 · 0 评论 -
Android中Parcelable接口用法
1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface must also have a static field called CREATOR, which i原创 2014-12-03 15:09:36 · 372 阅读 · 0 评论 -
Android中Parcel的分析以及使用
Parcel就是一个存放读取数据的容器, Android系统中的binder进程间通信(IPC)就使用了Parcel类来进行客户端与服务端数据的交互,而且AIDL的数据也是通过Parcel来交互的。在Java空间和C++都实现了Parcel,由于它在C/C++中,直接使用了内存来读取数据,因此,它更有效率。分析Binder机制中的客户端与服务器端进行实际操作ontransact()函数 :原创 2014-12-03 15:13:31 · 485 阅读 · 0 评论 -
Android UI-开源框架ImageLoader的完美例子
很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片,在拖动ListView的时候不会出现卡的现象。关于ImageLoader这个开源框架的使用有很多网友都介绍过,不过还不够清楚,这里有一个关于这个开源项目的完美例子,ListView的图片加载、GridView的图片加载、ViewPager的图片加载、Gallery画廊的图片加载、Widget的使用。很完善的一个例子,在这里我把所有界面转载 2014-12-02 11:47:34 · 787 阅读 · 0 评论 -
Android------SQLite
前言 SQLite是一种轻量级的小型数据库,虽然比较小,但是功能相对比较完善,一些常见的数据库基本功能也具有,在现在的嵌入式系统中使用该数据库的比较多,因为它占用系统资源很少。Android系统中也不例外,也是采用SQLite,本节中就学习下在andorid中怎样使用该数据库来存放数据,并且对SQLite完成简单的新建,更新,查询,删除等操作。实验说明: Android原创 2014-12-03 14:03:13 · 515 阅读 · 0 评论 -
Android-----ContentValues
ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象。通过SQL语句进行插入操作,SQL语句的好处是比较直观,但是容易出错。但是在这个例子当中我们有更好的办法,在这里我们将要插入的值都放到一个ContentValue原创 2014-12-03 12:55:30 · 686 阅读 · 0 评论 -
Android------线程thread
1. 本文的讲述内容和范围 本文讲述的是Android中线程及创建线程的方法,涉及到的内容包括: Runable, Thread, Handler, Looper, HandlerThread, AsyncTask。将要详细讲述以下几个方面的内容: 2) Runable和Thread的关系 3) Handler, Thread, Looper, HandlerT原创 2014-12-03 14:29:49 · 631 阅读 · 0 评论 -
Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
一、介绍 Android-Universal-Image-Loader是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们 可以直接拿来用了。而不用重复去写了。其实,写一个这方面的程序还是比较麻烦的,要考虑多线程缓存,内存溢出等很多方面。二、具体使用一个好的类原创 2014-12-02 16:50:56 · 869 阅读 · 0 评论 -
Class.getSimpleName()的作用
Class.getSimpleName()的作用public class sample{ public static void main(String[] args){ //得到类的简写名称 System.out.println(sample.class.getSimpleName()); //得到对象的全路径 System.ou原创 2014-12-03 14:47:24 · 5865 阅读 · 0 评论 -
Android------SharedPreferences
1简介编辑SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出。SharedPref原创 2014-12-03 15:47:22 · 512 阅读 · 0 评论 -
Android Fragment 真正的完全解析(下)
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与Action转载 2015-01-09 14:54:29 · 535 阅读 · 0 评论 -
Android Fragment 真正的完全解析(上)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,转载 2015-01-09 14:53:30 · 415 阅读 · 0 评论 -
Android-------- SoftReference
本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、转载 2014-12-05 09:33:52 · 360 阅读 · 0 评论