Android
文章平均质量分 66
DX_Demi
通过编程,离开了农村走向了城市。
展开
-
dashGap不起作用,没有间隙,始终是实线。
昨天写了一个界面,在一列清单下面要画一条虚线,与最下方确定按钮分隔开。我于是使用了shape,这本来是个很容易的事情,可弄了半天,一直是一条直线。先上代码看看吧。<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <stroke andro原创 2016-07-18 09:30:32 · 2719 阅读 · 3 评论 -
自定义View之--九宫格图形密码锁
前言:很多金融和几大商业银行的APP,都使用了九宫格图形密码锁来增强资金账户的安全。我也是金融公司的一员,在空余的时候,写下这个view,可以说是明智之举。效果预览这样一个逻辑差不多可以满足基本的需求了。接下来就看代码咯。NineSquareView的成长1、重写构造方法和初始化属性 private Paint pointPaint; //画点的画笔 private Paint li原创 2017-04-14 16:00:35 · 2900 阅读 · 2 评论 -
和你一起draw9patch
前言:在工作当中,你总会遇到制作点9图片的时候。我就在公司的新项目中遇到了。很多人说,这交给UI妹妹做就好了,为啥要烦劳我们自己动手?第一呢,作为程序员的我们,多学点东西是没错的。第二呢,UI妹妹做的点9图片产生的效果不是你想要的。一、制作点9图片的工具这个工具叫draw9patch,在我们Android sdk文件tools目录下,如下图: 二、制作点9图片的原理这是一张已经做好的点9图片。原创 2017-04-06 17:59:04 · 1277 阅读 · 2 评论 -
Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
因为项目用到推送功能,所以需求是知道用户是否开启了通知栏的权限,并且提供滑动按钮进行跳转以便用户进行关闭或者开启。1.获取通知栏权限是否开启:/** * 获取通知栏权限是否开启 * */public class NotificationsUtils { private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";转载 2016-12-09 09:53:40 · 20514 阅读 · 1 评论 -
Android Studio 安装应用失败总结
昨天公司刚发了测试机,我拿到一台魅蓝max.刚拆开手机。 今天插上数据线,run.结果居然安装失败。提示信息为:INSTALL_FAILED_USER_RESTRICTED。 顿时懵逼了,刚买的新机,就出现这个问题。无语啊。 刚开始还以为是Android studio的问题。结果模拟器跑了下,安装成功。 拿手机在其他人那跑了下,安装失败。好吧,手机的问题。 那到底是哪出了问题呢?我未知来源原创 2017-01-20 14:50:31 · 26166 阅读 · 7 评论 -
魅族MX5真机调试时部分日志丢失
公司发的测试机是魅族MX5,最近在赶项目,突然发现,我调试的时候网络请求的日志打不出来,模拟器,同事的小米手机可以打出来。我就认定是魅族手机的问题。于是猜想设置里面是不是有开关。结果还真是的。时间紧迫,我就不截图了。搞开发的,我下面的指示路径应该看得懂。解决方法:打开手机设置====》辅助功能====》开发者选项====》性能优化====》高级日志输出====》全部允许。原创 2017-05-18 20:39:47 · 1179 阅读 · 0 评论 -
自定义View之圆形水波扩散动效
前言这个效果做出来以后,真的美极了!放在你的应用中,无疑增添了光彩!效果图其实,第一种效果,才是产品的需求要的效果。第三种效果,是不是很熟悉?支付宝的咻一咻!哈哈,无意中,我就写出来了。实现步骤1.attrs.xml定义属性 <declare-styleable name="WaveView"> <!--圆颜色--> <attr name="wave_color" f原创 2017-06-01 18:11:32 · 8462 阅读 · 4 评论 -
解决RadioButton 在某些机器上不能居中显示
今天新建了一个模拟器,Android4.1.1版本的,也就是api16.跑了下公司的项目,发现主界面下面的四个RadioButton全是向右靠齐的。明明加了gravity = "center"属性。在其他机器上跑起来也是正常的。测试了好久,结果设置一个属性解决了这个问题。加上paddingLeft = “0dp”搞定。这一页有你们真好,愿你们生活过得愉快,谢谢!原创 2017-09-26 11:14:49 · 828 阅读 · 3 评论 -
MPAndroidChart简介
第一印象处在金融公司,离不开的就是行情图了。刚接触公司项目的时候,看到行情图,我就蒙了,这也太复杂了吧,这么多五颜六色的线和数据,如果不借助外界的工具,自己来写,估计也用不了多久的。但是代码可读性,封装性,耦合性会差很多。不好维护,当我打开github,看了Philipp Jahoda写的库之后,我淡定了,轻松多了。然后从github上把她down下来,Run,居然还有动画,太炫酷了,...原创 2018-04-19 13:51:04 · 3270 阅读 · 2 评论 -
Linechart的简单使用
折线图的绘制折线图可以说是绘制最频繁的了,我们从官方的demo中看看LineChart可以怎么玩?构建数据不管画什么,我们总得有个数据集合吧。后端的同志们给我们的是一个List集合,那LineChart是如何封装数据集合的呢?我们来瞧瞧代码:private void setData(int count, float range) { ArrayList<...原创 2018-04-19 14:23:18 · 12042 阅读 · 0 评论 -
HighLight
前言今天给大家介绍下Highlight。Highlight相关属性/** * the x-value of the highlighted value */ private float mX = Float.NaN; /** * the y-value of the highlighted value */ priv...原创 2018-04-24 18:09:53 · 1265 阅读 · 0 评论 -
Android 事件分发详解
一、建立事件分发Demo我们都知道事件分发与3个对象有关,Activity Viewgroup ,View. 所以下表显示了他们之间与事件相关的方法: 可以看到,Activity与View是没有拦截方法的。这很容易理解,如果Activity刚分发出来就拦截,还不如不分发呢,对吧!如果View做拦截是不是多此一举呢?后面没谁了啊。View就是最后一个。那有人就问了,那为什么View还有分发方法原创 2016-12-08 18:05:24 · 527 阅读 · 0 评论 -
ViewGroup中含有子View的时候,子View会执行OnDraw()方法一次或两次。
前言:今天,在写自定义View的时候让我发现了这样一个秘密。当ViewGroup中含有子View的时候,子View会执行OnDraw()方法一次或者两次。怎么那么不确切呢?没有那么多为什么,现象就是如此。有时候只绘制一次,有时候绘制两次。我觉得算是源码的一个bug吧。不信的可以亲自试试。例子1.自定义View代码:package com.dx.demi.view;import android.con原创 2017-03-14 15:58:08 · 3374 阅读 · 0 评论 -
系统自带DownloadManager详解
前言:还在自己写downloadUtils吗?有了DownloadManger.你只需将UI画好,其他的事情,交给他来做就好了。简介:DownloadManager是android2.3以后,系统下载的方法,是处理长期运行的HTTP下载的系统服务。客户端可以请求的URI被下载到一个特定的目标文件。客户端将会在后台与http交互进行下载,或者在下载失败,或者连接改变,重新启动系统后重新下载。还可以进入原创 2017-02-20 15:44:24 · 18145 阅读 · 27 评论 -
Android Studio 设置签名。
在每个项目中,都会有两个环境,一个是debug,一个是release。公司项目中能在release环境下运行,今天我新建了一个小小的demo,切换到release环境下,居然报错。根据报错信息提示可以知道,是因为没有设置签名。设置签名的步骤如下:1.点击菜单栏中的Build,找到Generate Signed APK ...,弹出如下对话框2.点击下一步,下一步,直到创建一个后原创 2016-10-09 19:48:02 · 3287 阅读 · 0 评论 -
Android开发者选项之GPU过度绘制
做设计的人很少能知道GPU过度绘制是个什么鬼?跟设计有什么关系?今天就让大家了解了解,首先来普及一下Android开发者选项中的Debug GPU overdraw。GPU过度绘制定义如果你粉刷过一个房间或一所房子,就会知道给墙壁涂上颜色需要做大量的工作。假如你还要重新粉刷一次的话,第二次粉刷的颜色会覆盖住第一次的颜色,第一次的颜色就永远不可见了,等于你第一次粉刷做的大量工作就完全被浪费掉转载 2016-10-11 14:51:41 · 24230 阅读 · 0 评论 -
Android 反编译
前言:作为开发者,我们反编译的目的是查看别人优秀的代码,而不是破解别人的代码,恶意修改,植入广告,获取利益。目前已经有很多APP被反编译破解了,什么保卫萝卜,等等。对原开发者,和用户都造成利益上的损失。接下来,我就开始直崩主题了。相信你已经看了很多篇反编译的博文了。首先要准备反编译的工具。(工作环境:Windows 7)apktool 作用:资源文件获取,可以提取出图片原创 2016-11-08 10:39:28 · 1537 阅读 · 0 评论 -
Android自定义圆形进度条
前言:看到别人写的那些个酷炫的动画,心里痒痒的,于是,自己就开始了自定义View的探索之路。正好公司有这样一个需求。原创 2016-11-15 11:33:51 · 1143 阅读 · 0 评论 -
Android自定义View之扇形饼状图
前言:继上次写了自定义圆形进度条后,今天给大家带来自定义扇形饼状图。先上效果图: 是不是很炫?看上去还有点立体感。下面带大家一起来瞧一瞧吧。一、定义成员变量,重写构造方法看着这个效果图,我们可以想象下接下来暂时会需要用到以下属性: /** * 存放事物的品种与其对应的数量 */ private Map kindsMap = new LinkedHashMap<原创 2016-11-24 15:20:36 · 14689 阅读 · 7 评论 -
Android 开发,测试环境换app icon ,在小米手机上无效。
好久没有写博客了,今天在开发中发现了一个有意思的bug.UI妹妹给了我新的一个app icon。我就替换了原来的icon.并把原来的icon从工程中删除了。 结果跑起来看效果,居然还是以前的icon.这就懵逼了。 我把我手机(小米note)上的app卸载后重跑,还是以前的icon. 把手机关机了,重启,还是以前的icon. 我找来同事的手机(红米3s),也还是以前的icon.彻底懵逼了。原创 2017-01-10 13:18:44 · 1746 阅读 · 0 评论 -
Android 6.0权限管理,sdk>=23请求权限
如果APP运行在Android 6.0或以上版本的手机,并且target sdk>=23,那么在使用一些相对敏感的权限时,需要征求用户的许可。比如读写sdcard,摄像,联系人信息等。 android 6.0发布几个月之后,升级率很低,很少应用会使用sdk23编译项目,如果要编译,就必须了解request权限的一些事。一,Android 6.0 运行时权限Android 6.0不仅UI改进很多,体转载 2017-01-18 09:53:51 · 998 阅读 · 0 评论 -
View的各种坐标
去写一个自定义View的时候,你会发现,View的各种坐标有点分不清了。这篇博文就来理清下这些坐标吧。一、图解 (1).getLeft(),当前View的左边缘与它父View的左边缘的距离(视图坐标); (2).getRight(),当前View的右边缘与它父View的左边缘的距离(视图坐标); (3).getTop(),当前View的上边缘与它父View的上边缘(顶部)的距离(视图坐标);原创 2017-01-19 16:28:37 · 494 阅读 · 0 评论 -
mac使用Dryrun做到不用运行Android Studio即可在模拟器安装预览GitHub开源项目
Dryrun是GitHub上的一个开源工具,它最强大的地方在于可以只用一行命令行即可让你运行GitHub上的项目,是不是很激动?通常我们需要预览GitHub上的开源项目一般会做以下几步:1.找到这个项目2.点击项目右侧的 Clone or download下载整个项目资源3.解压缩下载下来的zip文件4.导入Android Studio5.同步gradle配置5.如果缺少配置文件或者项目报错,则需要转载 2017-02-21 10:56:17 · 821 阅读 · 0 评论 -
Activity跳转到另外一个应用的Activity
跳转方法:使用 Intent中的ComponentName 属性即可。代码如下:Intent intent = new Intent();ComponentName cName = new ComponentName("com.steven.testasyncloader.sqlitedata","com.steven.testasyncloader.sqlitedata.MainActivit原创 2017-02-13 10:17:47 · 2178 阅读 · 0 评论 -
小米系统更新后android studio 通过USB安装报错:install_canceled_by_user
之前我也曾在Android Studio 安装应用失败总结一文中总结过这个问题,无非是usb调试没有打开;又或者是没有及时在手机上点击确认;再或者不管怎么样rebuild或者重启手机就能成功,但是在2016年11月24号更新了miui系统后,不管怎么样都会遇到install_canceled_by_user这个问题,最终发现在开发者选项里面多了一个USB安装的选项(在原来的USB调试下面),把这个打原创 2017-02-24 17:28:06 · 1452 阅读 · 0 评论 -
MarkerView
前言:过了一个愉快的五一后,我们又开始上班了,完成了本分的工作,抽点时间来和说说MarkerView咯。给我的印象,MarkerView的扩展性很强。它可以自定义自己想要的U样式.MarkerView源码/** * View that can be displayed when selecting values in the chart. Extend this class ...原创 2018-05-08 10:14:59 · 2590 阅读 · 0 评论