Android
文章平均质量分 94
hanfengzqh
这个作者很懒,什么都没留下…
展开
-
ALPHA_8、ARGB_4444、ARGB_8888和RGB_565的区别
在Android的Bitmap.Config中有四个枚举类型:ALPHA_8、ARGB_4444、ARGB_8888和RGB_565下面是这四种类型的详细解释:ALPHA_8:每个像素都需要1(8位)个字节的内存,只存储位图的透明度,没有颜色信息ARGB_4444:A(Alpha)占4位的精度,R(Red)占4位的精度,G(Green)占4位的精度,B(Blue)占4位的精度,加起来一...转载 2019-08-19 11:30:46 · 865 阅读 · 0 评论 -
Java 中 Comparable 和 Comparator 比较
本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明。 Comparable 简介Comparable 是排序接口。若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(...转载 2018-05-08 19:55:57 · 164 阅读 · 0 评论 -
Android TextView行间距解析
TextView行间距设置在布局XML中有两个参数可以对TextView的行间距进行设置。 分别为:android:lineSpacingExtra 和 android:lineSpacingMultiplier。 在代码中可以通过TextView的setLineSpacing()方法来设置。android:lineSpacingExtraandroid:lineSpacingExtra表示额外的...转载 2018-04-20 16:31:34 · 4886 阅读 · 2 评论 -
Fragment Activity 中startActivityForResult的回调
通过startActivityForResult在两个Activity之间传递数据应该没有任何问题,标准的模式为:[java] view plain copypackage com.ljq.activitys; import android.app.Activity; import android.content.Intent; import android.os.Bundle; im...转载 2018-04-20 11:14:48 · 981 阅读 · 0 评论 -
Eclipse:控制台报错误: Unable to execute dex: method ID not in [0, 0xffff]: 65536 解决方案
因公司业务开发模块的需求,至今仍在使用Eclipse开发工具,融入多个第三方jar包,在编译过程中发现:Eclipse:控制台报错误:Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536应该是工程中引入了多个第三方jar包,导致对单个DEX文件调用的方法数超原创 2017-12-31 10:56:49 · 1193 阅读 · 0 评论 -
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException:解决办法
关于GSON的解析异常,如果你的程序遇到以下异常,一般来讲存在两种可能性:1.先找一个JSON格式化工具,首先验证自己接收自服务器的JSON数据是否格式错误;2.保证JSON数据格式没有错误的前提下,却一直报这个解析错误,那就请确定你的JSON数据没有多余的空格。这个空格有可能在IO流读取的时候多读了12-25 14:41:31.882: E/AndroidRuntime(3929):原创 2017-12-25 14:58:54 · 7550 阅读 · 1 评论 -
Android之android.os.DeadObjectException原因
近期使用到AIDL跨进程通信,出现:12-15 09:28:12.371: W/System.err(5412): android.os.DeadObjectException12-15 09:28:12.372: W/System.err(5412): at android.os.BinderProxy.transactNative(Native Method)12-15 09:28:原创 2017-12-15 10:56:32 · 23875 阅读 · 0 评论 -
Android 蓝牙扫描枪连接状态变化(连接、断开)界面实屏幕会实时刷新重构一次
场景:Android设备连接蓝牙扫描枪,扫描条形码,获取扫描内容,进行支付,支付成功后到达成功界面,在onCreate()方法中初始化打印小票。问题:停留在支付成功界面,蓝牙状态发生变化(断开--连接--断开),小票重新打印。原因分析:扫描枪连接时是将其作为物理输入设备,即物理键盘,而安卓在改变屏幕方向、弹出隐藏键盘时都会重新执行onCreate( )方法。解决方案:在相应原创 2017-11-23 11:03:43 · 2527 阅读 · 0 评论 -
INSTALL FAILED CONFLICTING PROVIDER问题完美解决方案
INSTALL FAILED CONFLICTING PROVIDER.png在安装Android应用时出现INSTALL FAILED CONFLICTING PROVIDER问题,是不是感觉很抓狂呢,下面就跟大家分享一下出现这个问题的原因及解决方案。问题原因在Android中authority要求必须是唯一的,比如你在定义一个provider时需要为它指定一个唯一的authority。转载 2017-12-08 11:03:12 · 694 阅读 · 0 评论 -
编译错误:Could not get unknown property 'release' for SigningConfig container
首先贴出编译错误的截图[java] view plain copy print?Could not get unknown property ‘release’ for SigningConfig Container. Could not get unknown property ‘release’ for SigningConfig Contai转载 2017-10-12 12:12:32 · 1092 阅读 · 0 评论 -
PackageInfo、ResolveInfo
1.PackageInfo、ResolveInfo PackageItemInfo:包含了一些信息的基类, 它的直接子类有: ApplicationInfo、 ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。 它的间接子类有: ActivityInf转载 2017-05-24 09:39:34 · 290 阅读 · 0 评论 -
PackageManager的基本使用
在我们实际开发中,我们常需要获取应用的一些信息来使用,比如获取应用程序基本信息、获取permission是否注册等。这些信息获取都借助于Android给我们提供的PackageManager进行获取,这里我们就总结下PackageManager的基本用法。首先看下我们常见的Manifest配置图:通过上图可以看出,Android给我们的每个节点提供了对应的信息存储实体类,所以这转载 2017-05-09 16:41:06 · 4289 阅读 · 0 评论 -
android string.xml中使用占位符
不得不佩服Android studio强大,以前写代码只关注了是否拼写出错,现在根据studio的提示去操作,发现string.xml还可以写占位符!!!这下可以方便我对所有带参的文字的统一管理了。写一个简单的案例。在strings.xml中写入[html] view plain copy print?string name="string_test_1转载 2017-04-26 11:51:14 · 2141 阅读 · 0 评论 -
android 关于Make sure the plugin is properly configured问题的解决办法
这个问题引发的原因最初的报错是:[2013-10-14 10:01:58 - XXX] The connection to adb is down, and a severe error has occured.[2013-10-14 10:01:58 - XXX] You must restart adb and Eclipse.[2013-10-14 10:01:58 - XX转载 2017-01-12 16:17:48 · 328 阅读 · 0 评论 -
阴影效果 ShadowLayout 布局实现(让控件实现立体效果)
效果 第二张和第三张图是加入了阴影效果的,是不是觉得立体感很强,感觉图片是浮在屏幕上。这个效果也可以用Google 提供扩展包下的CardView控件来实现,而这篇文章是带大家自己来实现这样一个效果。原理我们仔细观察上图,可以发现,有带阴影效果的图和没带阴影效果的图,其实就一个地方不同,就是在图片的底下绘制了阴影效果,而图片的大小都没变。所以我们要做的就是给子 View 绘制阴影。那么阴影部分怎么...转载 2018-06-22 10:23:36 · 1439 阅读 · 0 评论 -
setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
更换radiobutton中的图片在xml中很好设置,但对于初学者如何在代码中设置还是不容易找的。没法子,通过看原版api找到两个方法,setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds。下面交给大家方法。第一个方法:setCompoundDrawablesWithIntrinsicBounds(Drawable left, D...转载 2018-06-15 16:35:38 · 1857 阅读 · 0 评论 -
Android targetSdkVersion 原理
前几天 Google 官方发布文章解析 compileSdkVersion、minSdkVersion 以及 targetSdkVersion 的含义,以及合理设置各个值的意义,原文 Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion(后面简称 “原文”),还有翻译版。其中,compileSdkVersion ...转载 2019-07-11 20:22:25 · 621 阅读 · 0 评论 -
view.setAlpha(float alpha)与view.getBackground().setAlpha(int alpha)的区别
Android中对一个View控件透明度的设置,提供了两个方法:view.setAlpha(float alpha)与view.getBackground().setAlpha(int alpha)这两者的区别主要是:传递参数: view.setAlpha(float alpha)参数范围是0~1;而view.getBackground().setAlpha(int alpha)传入的...原创 2019-02-20 11:38:11 · 2957 阅读 · 0 评论 -
Android色彩矩阵处理图像
Android中对于图片的处理,最常使用到的数据结构是位图——Bitmap,它包含了一张图片所有的数据。这个数据都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而颜色值——ARGB,分别对应透明度、红、绿、蓝这四个通道分量,它们共同决定了每个像素点显示的颜色,下图就显示了自然界中的色光三原色。色彩矩阵在色彩处理中,通常使用一下三个角度来描述一个图像...原创 2019-02-28 16:53:33 · 313 阅读 · 0 评论 -
layout_constraintDimensionRatio中 H与W的区别
在 ConstraintLayout 约束布局中, layout_constraintDimensionRatio 表示 期望的 宽高比 ,这方面 网上资料很多,但还有 一些 隐藏的用法 网上查不到。layout_constraintDimensionRatio 不仅可以用来 表示 宽高比, 也可以用来 表示 高宽比正常写法下 layout_constraintDimensio...转载 2019-02-11 17:04:36 · 1456 阅读 · 1 评论 -
高斯模糊
1.Android高效计算——RenderScript(一)2.Android实现图片的高斯模糊(两种方式)3.Android 弹窗毛玻璃背景实践4.Android使用glide实现毛玻璃效果5.Android图像处理 - 高斯模糊的原理及实现6.Android 图片高斯模糊解决方案...原创 2018-12-17 19:45:13 · 423 阅读 · 0 评论 -
NestedScrollView嵌套WebView加载成功内容显示空白问题解决
因为需求问题需要采用CoordinatorLayout+AppBarLayout+ViewPager+NestedScrollView+WebView布局方式,虽然Google官方不建议NestedScrollView+WebView的嵌套使用,但是为了需求实现,实在是没有找到其他的可替代方案,只能是采用此方法了。因为采用此方案,相关的问题也随之而来,其中最大的问题就是,WebView内容成功...原创 2018-12-10 16:04:25 · 6881 阅读 · 3 评论 -
给TextView控件内容每一个文字设置点击事件
String dst = "Liver and kidney are particularly rich in vitamin A."; SpannableStringBuilder ssInfo = new SpannableStringBuilder(dst); String[] split = dst.split(" "); for (Str...原创 2018-11-09 13:03:14 · 576 阅读 · 0 评论 -
Android字符串资源使用格式化占位符的正确使用
在Android的String.xml中若是含有两个或者两个以上的资源格式化占位符,例如以下:<string name="user_my_answer_grade_course">%s %s</string>在编译的过程中编译器会出现以下错误提示:出现这个错误的原因在于aapt在编译时对字符串资源中的格式化占位符进行比较严格的校验,解决方案有两种:使用...原创 2018-09-27 11:25:22 · 1639 阅读 · 0 评论 -
APK安装卸载过程简介
APK打包过程:1.javac工具将*.java文件进行转换,转换后通常得到一个*.class文件;2.dx工具对*.class文件进行转换,转换后通常得到一个*.dex文件;3.通过aapt工具打包所有的资源文件打包得到*.ap_文件;4.通过apkbuilder工具把前两步得到的*.dex、*.ap_文件打包生成apk。注:dx、aapt工具均在D:\xxx\android-sdk-...原创 2018-09-20 17:29:46 · 1727 阅读 · 0 评论 -
Android 各版本对应API以及相关特性
Android K 4.0~4.4w 14~20Android L 5.0 21Android L 5.1 22Android M 6.0 23Android N 7.0 24Android N 7.1 25Android O 8.0 26Android P 9.0 27https://blog.csdn.net/aqi00/article/details/50730793 A...原创 2018-09-20 17:23:30 · 1902 阅读 · 0 评论 -
Android 如何在ListView中嵌套ListView
因为项目MRD的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全甚至是空白一片完全不显示,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的S...原创 2018-09-15 11:32:07 · 4305 阅读 · 0 评论 -
ViewStub的使用简介
前言:在设计模式的单利模式中,懒汉式和饿汉式是其中两种。一种是在类被加载的时候就完成单例对象的初始化,一种是在需要使用该单例的时候才初始化。在android的视图设计中,同样需要使用的这样的设计模式。这样的视图加载起来需要耗费很多的时间。在这几百个视图里面,可能有部分视图是在点击某一按钮也就是并不是马上加载,而是延迟到要使用的时候才加载这部分视图。也就是类似于单例模式中的懒加载。...原创 2018-09-11 18:45:12 · 1410 阅读 · 0 评论 -
Android中Activity启动过程探究
首先追溯到Activity的启动,随便启动一个自己写的demo项目,使用DDMS进行debug标记,然后在Debug中把主线程暂停,可以看到调用栈。如下图所示:于是我们先看android.app.ActivityThread的main()方法。android.app.ActivityThread.main()main()方法中对一个Looper对象进行初始化,形成一个消息循环,那么任何主线程的操作...转载 2018-06-23 16:45:54 · 186 阅读 · 0 评论 -
Android系统的进程,任务,服务的信息
获取android系统中进程,任务,服务信息,需要通过ActivityManager类来实现。 ActivityManager的功能是为系统中所有运行着的Activity交互提供了接口。 ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE转载 2016-12-20 13:58:07 · 372 阅读 · 0 评论 -
Android StatFs类
StatFs用于获取存储空间1,构造函数StatFs(String path)2,方法A,APIgetAvailableBlocks()文件系统中可被应用程序使用的空闲存储区块的数量getBlockCount()文件系统中总的存储区块的数量getBlockSize()文件系统中每个存储区块的字节数getFreeBlocks()转载 2017-05-09 13:51:16 · 991 阅读 · 0 评论 -
android listview/ScrollView 去除顶部下拉时的半月形阴影和上下滑动顶部和底部的虚化
在android5.0当中正常的listview/scrollview在下拉的时候顶部会出现半月形的阴影效果,先要去除这个小效果可以设置android:overScrollMode=“never”就可以去掉这些效果。这句是用来去掉系统自带的阴影正常的listview/scrollview在进入和滑出控件边界的时候会出现一层虚化的效果:为了去除虚化的效果可以使转载 2017-06-14 12:58:48 · 1053 阅读 · 0 评论 -
Android TextUtils.isEmpty()的认知
之前一直用TextUtils.isEmpty()进行字符串的非null判断,所以一直搞不清楚在""时是否也能用TextUtils.isEmpty()进行判断。其实通过查看源码就可以知道:/** * Returns true if the string is null or 0-length. * @param str the string to be examine原创 2016-10-11 13:21:42 · 11261 阅读 · 0 评论 -
Activity的onNewIntent()与onSaveInstanceState(Bundle outState)何时调用
一、Activity的onNewIntent()方法何时会被调用 前提:ActivityA已经启动过,处于当前应用的Activity堆栈中;1. 当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent()方法2. 当ActivityA的LaunchMode为Singl原创 2017-05-05 17:30:11 · 638 阅读 · 0 评论 -
Android中获取应用程序(包)的信息-----PackageManager的使用(一)
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename、label、icon、占用大小等。具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename、label、icon等 ; 第二部分: 获取应用程序的占用大小,包括:缓存大小(cachsize)、数据大小(datasize)。转载 2017-05-09 17:39:31 · 301 阅读 · 0 评论 -
Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
本节内容主要是讲解ActivityManager的使用,通过ActivityManager我们可以获得系统里正在运行的activities,包括 进程(Process)等、应用程序/包、服务(Service)、任务(Task)信息。 计划如下: 第一部分:获取系统可用内存以及所有的正在运行的进程信息 ;转载 2017-05-09 17:38:16 · 373 阅读 · 0 评论 -
Android中获取正在运行的应用程序-----ActivityManager.RunningAppProcessInfo类详解
每一个应用程序都会运行在它独立的进程里,但是为了节省资源或者这些应用程序是为了完成某一共同工作,它们 也可能会运行在一个进程里。 知识点介绍: ActivityManage转载 2017-05-09 17:36:33 · 1120 阅读 · 1 评论 -
Android手机中UID、PID作用及区别
PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID。进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在Android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大。UID:一般理解为User Identifier,UID在Linu转载 2017-05-09 17:30:29 · 2273 阅读 · 0 评论 -
Android 中InputMethodManager类的用法
JavaEye社区:http://www.iteye.comAndroid中文翻译组:http://goo.gl/6vJQl 正文 一、结构public final class InputMethodManager extends Object Java.lang.ObjectAndroid.view.inputmetho转载 2017-05-09 16:17:56 · 998 阅读 · 0 评论 -
Looper.prepare()和Looper.loop()详解
Android中的Looper类,是用来封装消息循环和消息队列的一个类,用于在android线程中进行消息处理。handler其实可以看做是一个工具类,用来向消息队列中插入消息的。 (1) Looper类用来为一个线程开启一个消息循环。 默认情况下android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环。)Looper对象原创 2017-05-12 09:29:26 · 5848 阅读 · 0 评论