
Android
文章平均质量分 51
BlochCoding
努力去获得自己想要的和渴望得到的!
展开
-
输入框的输入字符(字节)监听控制,及实时限制输入规则
* 描述:监听输入框输入的字符数* 要注意:* 1、一个汉字算2个字符;* 2、截取显示输入内容后注意光标位置;* 3、如还能再输入一个字符,如果数的是汉字,要加以处理,以及光标重定位问题在android 开发中,经常会遇到要求输入框内输入的文本内容限制10个汉字或20个字母的要求。之前也在网上看了很多解决方案,效果都不是很好,大多数都是直接取字符串的length()作为限定的判断依据,这个思路是非常不对的,单纯的用String.length(),去判断字符串的长度,字母和汉字的长度一样,因.原创 2020-06-08 18:49:40 · 600 阅读 · 0 评论 -
android 自定义比例裁剪图片(拍照 相册)方式 自定义比例
先说下我这个有啥好处 主要是能够自定义设置裁剪图片的比例.比如 :今天产品 给你说裁剪 成16:9 的图片. 你做好了 OK 明天 产品又和你说 裁剪成10:7 的图片 ,你是不是要吐血, 我这里只要设置一行代码就可以改变裁剪的比例.OK 还是老规矩 先上效果图 看看啥样子好了 不扯其他的了 我这里的比例是10: 7 的 ,来看下我的目录结构把讲下大致原理 照相或者相...原创 2019-12-05 14:40:49 · 1676 阅读 · 0 评论 -
如何给你的Android 安装文件(APK)瘦身(二)
上一篇文章有说到Android lint工具的使用,下面就简单介绍一下:作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常,lint就能解决我们的这些问题。Android lint是在ADT 16提供的新工具,它是一个代码扫描工具转载 2015-12-30 15:07:05 · 412 阅读 · 0 评论 -
如何判断传过来的JSON数据中,某个字段是否存在
我们知道,get请求获取网络数据时,有可能获得数据,有可能获取不到数据(null),这样就好判断结果来决定是否进行下一步的解析。但是,如果是post请求,获取的数据一般由两种结果:正确的数据(我们渴望的)、错误的数据(因post请求提交的数据造成),没有为null的情况,那么我们在判断是否进行下步解析,就不能依据判断为null与否。例:获取的正确数据:{ "Demand原创 2015-12-02 15:34:41 · 17908 阅读 · 0 评论 -
spinner设置选中后文字的颜色,大小
上一篇博文中讲到,设置的是点击选择spinner选项时,各个item的样式,方法是自定义TextView.xml文件;本篇是介绍如何设置spinner的item被选中后,显示的字体效果。要改变spinner选后的字体样式,说明spinner已经是ItemSelectedListener后的,相应改变此时字体,也应在监听里面做修改:先看代码:spinner.setOnIt原创 2015-12-02 10:52:59 · 7109 阅读 · 1 评论 -
设置editText的四周边框-圆角边框
把下面的代码保存到res/drawable/edittext.xml,在layout中的EditText添加属性android:background="@drawable/edittext"edittext.xml的代码如下: xmlns:android="http://schemas.android.com原创 2015-12-01 16:32:49 · 10689 阅读 · 0 评论 -
Fragment中获取Context对象的两种方法
我们在使用Fragment的时候经常需要传递Context类型的参数,【Android用的比较多的就是下面几个导航按钮,点击切换fragment(之前Android studio2.0以前是可以new fragment(context)时传递Context,但后来升级了studio2.1.2之后,new fragment对象时传递context会报错,不得不想别的法子了)】而Fragment自原创 2017-04-18 16:25:47 · 25090 阅读 · 1 评论 -
Android中GridView排列CheckBox和radiobutton及它们取值控制
项目中遇到的问题,先简单说下:CheckBox:Android中大多用到的就是APP登录时,自动登录,记住密码,这样单个进行控制比较容易;但当项目中有一块儿是多个值以复选框的形式展现(可以一个一个写,但这里推荐使用GridView,其adapter填充的布局就是一个CheckBox,很方便的控制数据变动),那就需要进行控制取值了。radiobutton:说到radiobutton,大家首先原创 2017-04-18 17:15:07 · 1492 阅读 · 0 评论 -
This version of Android Studio is incompatible with the Gradle Plugin used.
问题背景因为项目数据库集成需要,(因协同开发,拉取代码)将工程的graddle版本升至了3.5,而我的Android studio 版本为2.1.2,于是就出现了题目中的报错:Error running app: This version of Android Studio is incompatible with the Gradle Plugin used. Try dis原创 2017-05-08 16:20:29 · 890 阅读 · 0 评论 -
Android启动白屏问题解决办法
最近做项目时,由于后台接口暂时没调,登录一步就直接跳过了(点击登录按钮直接跳转后面页面),界面运行很顺畅 。后来可以登录了,因为在登录页的onCreate方法中会判断获取本地保存的用户名及密码,这无疑就导致了在执行onCreate时占用了时间,这时也就出现了白屏问题。而使用setContentView又一定要放在onCreate中,setContentView本身,就需要占用时间,所以这个白屏无法原创 2017-04-26 11:23:29 · 2183 阅读 · 0 评论 -
沉浸式状态栏4.4及5.0以上通用
Android从4.4开始有沉浸式状态栏效果,5.0以前的实现很简单:如果手机版本大于等于4.4,就实现沉浸式状态栏效果://4.4版本及以上if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { window.setFlags( WindowManager.LayoutParams.FLA原创 2017-04-26 16:07:01 · 1981 阅读 · 0 评论 -
listView嵌套listView的实现,以及遇到的问题的解决
listView嵌套listView的实现,有效果图;以及点击内层listView的item时,偶尔会抛出的异常的完美解决。原创 2015-12-09 14:17:48 · 952 阅读 · 1 评论 -
Android 开发笔记——通过 Intent 传递类对象
Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象。要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递。Intent中传递这2种对象的方法:Bundle.putSerializable(Key,Object); //实现Serializable接口的原创 2015-12-18 11:15:45 · 498 阅读 · 0 评论 -
ListView设置item的行间距,以及去掉分割线
前几天因项目需要,需要给listview的item设置圆角效果且有行间距,查找了一些资料,总结如下:(这里圆角效果不再赘述了,本人共享的项目里已有代码)1.设置item的行间距:可以在xml布局文件中的listView下设置xml属性:android:divider="#00000000"android:dividerHeight="18dp"解释:分隔线透明,高度为18原创 2015-12-21 10:47:53 · 14621 阅读 · 1 评论 -
如何给你的Android 安装文件(APK)瘦身(一)
Android的apk文件越来越大了这已经是一个不争的事实。在Android 还是最初版本的时候,一个app的apk文件大小也还只有2 MB左右,到了现在,一个app的apk文件大小已经升级到10MB到20MB这个范围了。apk文件大小的爆炸式增长主要是因为用户对app质量的期待越来越高以及开发者的开发经验增长,具体体现在以下几个方面:Android设备 dpi 的多样化 ([l|m|tv原创 2015-12-30 15:03:18 · 604 阅读 · 0 评论 -
安卓弹出对话框——Alertdialog(一)
首先看各种样式的对话框:我们看到,Dialog有很多的子类实现,所以我们要定义一个对话框,使用其子类来实例化一个即可,而不要直接使用Dialog这个父类来构造。二、AlertDialog今天我们重点要来了解的就是AlertDialog对话框,我们看到,AlertDialog是Dialog的一个直接子类。使用AlertDialog,我们可以显示一个标题,最多3个按钮操原创 2015-12-29 15:35:03 · 884 阅读 · 0 评论 -
android自定义横向柱状图
上图:类似于这样的效果,很简单。这是一个listview,item是自定义的view,有两个特点: 传入长度,动态改变柱状图的长度;根据长度改变色值,长度越长越红,反之越黄。 用到的知识点无非是paint在canvas上画图,这里不赘述,想了解但是不了解的童鞋可以看我上一篇日志。 在这里最想提到的一点是关于Android原创 2015-12-21 14:42:59 · 3838 阅读 · 1 评论 -
JfreeChar 画横向柱状图
[java] view plaincopypublic class FinancePlot extends Plot implements Cloneable, Serializable { /** * */ private static final long serialVersionUID = 1转载 2015-12-21 14:38:27 · 1506 阅读 · 0 评论 -
解决Fragment 使用回退栈,返回上一Fragment不刷新有关问题
解决Fragment 使用回退栈,返回上一Fragment不刷新问题!效果如图:先介绍下场景:第一个Fragment为A第二个Fragment为BA在onCreateView的时候会自动去数据库读取数据。更新View。然后点击A的【修改】,可以在B里对A的三个数据进行修改,修改完毕后,保存到本地数据库里。点击【确认】返回A。然而这时候A的值没有变化,跟踪代码转载 2015-12-21 14:13:32 · 3337 阅读 · 0 评论 -
Android慎用layout嵌套, 尽量控制在5层以下java.lang.StackOverflowError
一、探寻原因在一个复杂的layout嵌套较多layout的android界面,在Android 2.3、内存较低 的机型上,出现 java.lang.StackOverflowError 这个Exception,appcrash退出。这个错误出现的比较奇怪,在我做技术调研的时候,这个界面是放在4.0的系统中测试,工作很正常,没有出现这个严重错误。 android SDK转载 2015-12-18 10:27:30 · 1315 阅读 · 0 评论 -
spinner改变字体颜色,大小等
原生的Spring 控件是无法更改字体和颜色的...从下面的代码可以看出...红色的标注显示使用的是Android默认的布局..代码来自于Apidemo. 1 Spinner s1 = (Spinner) findViewById(R.id.spinner1); 2 ArrayAdapterCharSequence> adapter =转载 2015-12-02 10:40:02 · 11792 阅读 · 0 评论 -
listView的adapter问题
之前项目中,要listView里嵌套listView,当写死数据时,会报错,详见本文转载 2015-11-26 13:54:24 · 402 阅读 · 0 评论 -
360的水波进度提示-path绘图
今天使用自定义view实现类似于360的水波进度提示的功能,效果如下: 实现原理实现该效果主要用到了使用path绘制正弦波,以及xfermode知识点。可以首先绘制一个实心圆,然后设置xfermode为SRC_ATOP。path快速学习我们先来简单看一下path的基本用法,path可以绘制任何我们想要的图形。mPath = new Path();mPa转载 2015-11-16 16:43:03 · 575 阅读 · 0 评论 -
studio编译错误Error:Failed to open zip file. Gradle's dependency cache may be corrupt
错误样例: 这句话的意思是 :打不开压缩文件, gradle依赖缓存发生中断解决方式: 1.删除项目中的 gradle文件夹—>wrapper文件夹2.重新gradle编译 如果解决不了—1.删除该文件 ~/.gradle/wrapper/dists/gradle-3.3-all/55gk2rcmfc6p2dg9u9ohc原创 2017-06-20 10:55:54 · 609 阅读 · 1 评论 -
Android实现调用系统相册和拍照的Demo示例
本文讲述了Android实现调用系统相册和拍照的Demo示例。分享给大家供大家参考,具体如下:最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的。确实是,我记得一个月前,我一同学也遇到了这样的问题,在低版本的系统中没问题,用高于4.4版本的系统就崩溃。所以,我还是想提取出来,给大家整理一下,一个比较完整无bug的demo原创 2017-07-03 16:48:32 · 1139 阅读 · 0 评论 -
Realm for Android 的使用
一、前言介绍Realm 是一个手机数据库,是用来替代 SQlite 的解决方案,比 SQlite 更轻量级,速度更快,因为它有一套自己的数据库搜索引擎,并且还具有很多现代数据库的优点,支持 JSON,流式 API 调用,数据变更通知,自动数据同步,简单身份验证,访问控制,事件处理,最重要的是跨平台,目前已经支持 Java、Swift、Object - C、React - Native 等多种实现,...原创 2018-05-17 17:39:09 · 1502 阅读 · 1 评论 -
2018最新精选的Android优秀开源库和项目,很有价值
1.DDComponentForAndroid地址:https://github.com/luojilab/DDComponentForAndroid一套完整有效的android组件化方案,支持组件的组件完全隔离、单独调试、集成调试、组件交互、UI跳转、动态加载卸载等功能2.open-source-mac-os-apps地址:https://github.com/serhii-londar/ope...转载 2018-05-07 19:37:46 · 457 阅读 · 0 评论 -
网络加载框架 - Retrofit详解
之前项目开发网络请求用的是okhttp,后下来转战比较火的retrofit+rxjava,但应为时间紧,只是大概了解了下怎么使用就上战场了,想着抽点时间还是要好好学习下。Retrofit是什么?Retrofit其实我们可以理解为OkHttp的加强版,它也是一个网络加载框架。底层是使用OKHttp封装的。准确来说,网络请求的工作本质上是OkHttp完成,而 Retrofit 仅负责网络请求接口的封装...转载 2018-05-16 16:44:57 · 1113 阅读 · 0 评论 -
解决几个ViewPager 异常问题 | 深入剖析
转自:鸿洋https://mp.weixin.qq.com/s/YsjcwyjUq_RNv9Wa9zajhQ 1概述 本文所有分析及解决方案都依赖于ViewPager的源码实现,阅读前推荐先阅读: ViewPager源码分析(发现刷新数据的正确使用姿势) https://blog.youkuaiyun.com/wurensen/article/details/8139064...转载 2018-09-27 14:32:23 · 1835 阅读 · 0 评论 -
Android O 适配详细指南
1前言 最近 Google 对 Google Play 上架的应用提出了目标 API 等级要求。 从 2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须针对 Android 8.0 (API 等级 26) 开发; 2018 年 11 月 1 日起,所有 Google Play 的现有应用更新同样必须针对 Android 8.0。 ...转载 2018-09-27 14:38:59 · 386 阅读 · 0 评论 -
APP后台唤醒,包名启动
1、判断App是否出处于运行状态:用法:boolean appIsRunning = SystemUtil.isAppRunning(context, mPackageName);public static boolean isAppRunning(Context context, String packageName) { ActivityManager am = (Activ...原创 2018-11-22 12:06:50 · 2206 阅读 · 0 评论 -
Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file
1.file转bitmapFile param = new File();Bitmap bitmap= BitmapFactory.decodeFile(param.getPath());2.drawable转bitmapBitmap bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.jcss_03 );...原创 2019-03-18 14:10:37 · 3412 阅读 · 0 评论 -
关于集合和json以及jsonString和json的互转问题
一、集合List和JsonStr的互转1、集合list转jsonStr:List<WarningListBean> mHealthWarningList = new ArrayList<>();WarningListBean warningBean = new WarningListBean();warningBean.setName(roleInfoEntity...原创 2019-09-12 15:22:09 · 258 阅读 · 0 评论 -
自定义侧滑菜单
1、布局文件<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_drawer_layout" a...原创 2019-09-12 15:34:09 · 206 阅读 · 0 评论 -
Android Studio 依赖方式 implementation 与 compile(API dependency)的区别
implement概念 : 将该依赖隐藏在内部,而不对外部公开。理解 : 在 app mudule 中使用 implement 依赖的第三方库, 在其他 mudule 是无法调用的.举例 : 此时项目中有一个 mudule 是 ImageLoader ,其内部用 implement 指令依赖了 glide 这个库, 那么此时我们在 app mudule 中无法调用 glide 库中的方法.comp...原创 2018-05-09 15:32:43 · 5040 阅读 · 0 评论 -
Textview设置不同颜色,下划线,加粗,超链接(SpannableString)
作为android移动开发者,当需要给TextView设置字体显示样式时(比如设置颜色,字号,加粗等),一般可以在布局xml文件中设置,或者在代码中动态设置;但如果有需求是这样的,比如:项目需求:后台返回的String数据是“4月13日健康状态:以上结论依据过去24小时内620次心率、115次血压、373次血氧数据得出;每天中午13:00出具结论,统计24小时内数据。”要求在TextView的显示...原创 2018-04-13 18:30:44 · 3000 阅读 · 0 评论 -
Android项目方法数超过64k问题(项目总方法数超过65535)
1. 问题描述Error:The number of method references in a .dex file cannot exceed 64K.Error:Execution failed for task ':app:transformClassesWithDexForRelease'.> com.android.build.api.transform.Trans原创 2017-08-10 16:23:35 · 448 阅读 · 0 评论 -
Android点击通知栏,打开应用跳转到相应的Activity
Android点击通知栏,打开应用跳转到相应的Activity在开发android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity。目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两原创 2017-08-10 16:40:31 · 8724 阅读 · 1 评论 -
阿里推出业界首个非侵入式热修复方案Sophix,颠覆移动端传统更新流程!
Sophix的横空出世,将会打破各家热修复技术纷争的局面。我们可以满怀信心地说,在Android热修复的三大领域:代码修复、资源修复、so修复方面,以及方案的安全性和易用性方面,Sophix都做到了业界领先阿里巴巴对Android热修复技术已经进行了长达多年的探索。最开始,是手淘基于Xposed进行了改进,产生了针对Android Dalvik虚拟机运行时的Java M转载 2017-12-07 17:23:39 · 369 阅读 · 0 评论 -
浅析Android热修复sophix
移动互联网市场日趋成熟,移动产品研发进入平稳发展阶段,这意味着开发者的思维和研发模式也应转入下半程。安全领域技术在开发中的应用一直是操作系统平台发展周期中的重要一环。热修复,作为安全领域技术的衍生品,自2016年开始,持续受到关注,并不断演进。 2016年上半年,为了提升产品在敏捷开发下的最佳发布体验,分别尝试了备受关注的阿里和微信两大派系的热更新方案(支付宝的Andfix和微信的转载 2017-12-07 17:28:27 · 647 阅读 · 0 评论