
android应用开发
文章平均质量分 61
tihi2
爱生活,爱家人,爱Android
展开
-
Android界面卡顿问题
设计需要,实现 viewpager + fragment 循环滑动功能, 但最后一页与第一页滑动衔接时界面出现卡顿,本想通过缓存viewpager里的所有fragment来解决,但收效甚微,且缓存所有fragment不合理,最终通过开启硬件加速解决。硬件加速最好不要整个Application开启,而是针对某个Activity开启;整个application开启某些界面会出现问题原创 2015-12-13 17:10:05 · 1683 阅读 · 0 评论 -
android星星评分自定义控件
实现效果图如下,功能类似淘宝的订单评价,点击星星表示评分的高低;自定义控件封装星星展示、点击操作、并提供给上层当前选中的星星数,上层只要设置星星选中、未选中的效果图等参数即可:上代码:1. 自定义LinearLayout:package com.stars.test;import java.util.ArrayList;import java.util.List;原创 2016-01-13 21:49:42 · 3929 阅读 · 5 评论 -
android UI适配方法经验总结
1. 按屏幕的像素比例适配:宽度适配、高度适配要分开,切记混淆,因为宽度的像素、高度的像素不同; -- 线上互动界面适配时 在高度适配时使用了宽度的像素;像素是可以计算出来的:eg: 宽度适配(1)获取屏幕宽度总像素,如720px;(2)根据指定的百分比(如0.7),则希望的宽度像素 = 720 * 0.7 = 504像素; 这样的适配,无论任何机子原创 2016-01-28 16:50:37 · 1065 阅读 · 0 评论 -
android Toast提示异常:java.lang.RuntimeException: Can't create handler inside thread that has not called
android Toast提示异常:java.lang.RuntimeException: Can't create handler inside thread that has not called仔细检查了代码,不应该异常啊?? 没有 handler相关代码啊? 原来是在子线程弹Toast了, 切记,Toast只能在UI线程弹出,如果一定要在子线程弹,那么原创 2016-01-28 17:06:32 · 14808 阅读 · 0 评论 -
Android微信、朋友圈分享回调函数无响应
集成微信SDK,发现分享回调函数没有响应, 原因是下面这个啊: 新建的activity名称一定要是WXEntryActivity,而且一定要放在你申请的时候填写的包名+wxapi下,而且这个activity在AndroidManifest.xml下还要设置android:exported=”true”,呵呵,真蛋碎。如: android:exported=”true”/原创 2016-01-28 16:55:13 · 4154 阅读 · 0 评论 -
代码实现drawable selector效果
项目中经常遇到一个按钮需要不同的状态效果,如点击效果、普通效果、禁用效果等,如果给每个控件都在drawable下新建个xml样式文件,那一个工程下来,就会有太多的xml文件, 所以通过代码实现样式效果,一劳永逸。代码:多张图片样式:public StateListDrawable createStateListDrawable() { StateListDrawable stat原创 2016-01-10 15:42:34 · 2573 阅读 · 4 评论 -
Android 清除canvas内容
画新的东西之前需要先清除画布内容:方法1:canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); 方法2:Paint paint = new Paint(); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); c转载 2016-02-01 12:38:11 · 2995 阅读 · 0 评论 -
DDMS Heap 查看内存占用大小
1、选中要查看的进程,点击上方的 第二个按钮“Update Heap”;注:第三个按钮,就是右边带个向下箭头的是 Dump HPROF File,dump出hprof文件给MAT工具查看的2、点一下 “Cause GC”按钮,内存数据就显示了3、数据含义分析Heap Size: 系统分配给当前应用程序的总内存;对应读内存的代码: Ru原创 2016-03-03 20:49:30 · 3299 阅读 · 0 评论 -
android显示gif图
最近项目中有个需求,在android上展示gif图片,android自身是没有展示gif图的控件的原创 2017-02-17 09:45:47 · 1306 阅读 · 1 评论 -
eclipse项目导入android studio 各类问题及解决方法
随着时间的推移,技术的推进,开发android的IDE,逐渐由 eclipse转移到android studio,但… 我们的拖延症是很严重的,只要eclipse能用一天就绝不迁移偷笑,只到有一天,项目越来越大,引入的第三方库越来越多,超过了android的最大限制65535, 不得不使用拆包方式,不得不迁移到android studio大笑, 迁移项目过程中遇到很多坑,在此进行总结,并给大家提供参考。原创 2017-02-17 16:01:36 · 10450 阅读 · 0 评论 -
android gradle自动构建大总结
android gradle自动构建背景:日常出版本和线上出版本时,需要手动修改一些配置,包括key配置、线上/测试环境配置、版本号增加等,过程繁琐。所以对构建脚本进行改进,达到自动构建目的。原创 2017-02-16 13:25:18 · 4885 阅读 · 0 评论 -
android多进程深入分析
android一个应用程序,可以存在多个进程, 在某些场景,比如希望获得更多的内存、希望功能模块间不相互影响,或者彻底解决webview内存泄漏等, 可以开多个进程;看似好用且强大的多进程,也是一把双刃剑,今天就深入分析分析多进程;原创 2017-02-21 18:24:00 · 1666 阅读 · 0 评论 -
ubuntu文件权限详解
文件权限:分为可读、可写、可执行 权限,并不是说某个文件具有这个特征后,谁访问都有这个特征,而是因人而定的, 权限是与用户挂钩的,如root用户,对文件有各种权限,用户“大猫”只有只读权限,用户“大熊”与读、写权限 等一、权限含义解释1.目录权限解释新建 tmp 目录,通过 ls -l 查看文件drwxr-xr-x 2 root root 4096 12月 25 11:08原创 2015-12-25 16:12:46 · 4371 阅读 · 0 评论 -
canvas的save和restore
经过画图琢磨,终于理解 canvas的save和restore的用意了,上效果图和:代码左下角画一个圆、中间画一个向右箭头、右上角画一个圆ps: 使用了restore的效果ps: 不使用restore的效果 /** * 在画布的 左下角画圆, * 中间画向右箭头 :旋转画布后再画 * 右上角画圆:画布旋转为原始方向后再画 * @param原创 2016-01-06 09:55:43 · 2735 阅读 · 0 评论 -
android bitmap内存那些事
bitmap内存占用是一个困扰我很久的问题,今天就好好理一理!这篇文章用的图片为下面这张图:480 * 800 (这里放上来的我把它缩小了,要不然网页上显示着特别大)问题:一张压缩前 和 压缩后的图片,PC上的大小有区别,但尺寸不变,只是质量压缩了,那么读入内存时占用的内存大小呢?验证:机型:小米2s压缩前的图大小如下:压缩后的图大小如下:原创 2016-01-10 14:05:55 · 4576 阅读 · 5 评论 -
java float小数相减不准确
最近程序发现个bug,测试人员告诉我优惠券为0.1元时,为什么显示优惠券了0元。一直很纳闷呢,为什么别的场景都正常,这时出现bug。我们的计算公式: 优惠券了的钱 = 原价 - 优惠后的价格 原价为 43.0, 优惠后的价格为 42.9 43.0 - 42.9 = 0.0999… 只保留一位小数,后面的直接截断,不四舍五入, 结果为0.0,导致bug。那么怎么来解决呢? 将 float型原创 2015-12-13 13:12:46 · 5105 阅读 · 0 评论 -
android shape 部分圆角适配
通常会在shape画各种形状的图形,画圆角图时 android系统存在个bug,android2.x,左下角(bottomLeftRadius)、右下角(bottomRightRadius) 是反过来的。解决方法:res下新建 drawable-v12 目录,存放v12及以上适用的xml,drawable下存放v12以下适用的xml. 举例:一个 左上、左下两个角圆角,右上、右下两个角直原创 2015-12-13 13:23:43 · 3566 阅读 · 0 评论 -
android混淆打包、反编译、重新打包签名
一、混淆打包 1. 在工程中配置 proguard.cfg 文件的内容, 比如哪些不混淆,或者保留等; 2. project.properties 中,加上 proguard.config= proguard.cfg 3. 打 release模式 或者 export signed apk ,就会打出混淆后的包 参考网址 : http://blog.youkuaiyun.com/kangbulb/ar原创 2015-12-13 16:31:35 · 1100 阅读 · 0 评论 -
android api兼容/被加 的level 查询
使用某个较不常用的API时,最好先查一下该API是哪个版本加入的,以免不支持的版本出现奔溃,下面说说查看方法。官方链接: http://www.android-doc.com/reference方法:1. 在左侧APIs下面找到要查询的 包2. 点击包, 滑到下面的 class 区域,找到 要查询的 类:3原创 2015-12-13 16:50:43 · 739 阅读 · 0 评论 -
bmob 后台云服务使用
官方链接:http://www.bmob.cnbmob提供后台服务,对于个人开发者来说是个大好消息,不需要管后台,只管开发客户端即可,通过调用bmob封装好的SDK接口即可,但要实现复杂的需求可能就有点小麻烦,个人开发者不妨一试!注意事项:1. bean 类名必须与配置的表名完全一致【包括大小写】,后台库中表配置后,无法修改表名; 与 dbUtil 类似,一个 Bea原创 2015-12-13 17:19:33 · 2686 阅读 · 1 评论 -
rotate旋转不间断动画
今天做个小需求,需要不间断的旋转,先上代码再解释:<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="800" android:fromDegrees="0" android:interpolator="@android:anim/linear_int原创 2016-01-19 20:13:05 · 1889 阅读 · 0 评论 -
TextView最大长度限制,超出部分省略号显示
TextView最大字数长度经常需要控制,如用来显示昵称,昵称的长度是不固定的,如果TextView后面有其他控件,需要注意是否会被TextView控件挤掉xml中属性设置: <TextView android:id="@+id/name" android:layout_width="wrap原创 2016-01-19 20:32:34 · 30955 阅读 · 0 评论 -
listview局部刷新
listView局部刷新是个比较常用的功能,比如下载进度更新,我把局部刷新原理封装成一个类;实现原理:(1)找到需要更新的item在adapter中的位置; (2)更新adapter中item的数据data; (3) 如果该item在listView当前屏的可见范围内,则拿到Item的ViewHolder更新控件内容,否则不需要更新,待下次adapte原创 2016-01-19 20:44:52 · 982 阅读 · 0 评论 -
android输入法属性使用,软键盘隐藏、显示状态控制大揭秘
经常会遇到需要控制输入法的情况,如输入法显示、隐藏; 输入法弹出后,界面被顶上去或编辑框被遮挡等问题;下面分为几个部分总结输入法属性设置,及输入法控制。一、windowSoftInputMode设置 activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题 这个属性能影响两件事情: a. 当有焦点产生时,软键盘是隐藏还是原创 2016-01-19 21:14:43 · 4385 阅读 · 0 评论 -
自定义控件:按百分比展示ImageView
相信大家都遇到过ImageView的适配问题,尽管ImageView有多种拉伸方式、fitXY、CenterCrop …… 但仍然无法满足需求。如下面这张效果图,不同分辨率的手机上,无论使用何种拉伸方式都可能会出现变形,这个图不是纯色的,所以图案变形就不好看了。 对于分辨率适配,通用的一个处理方法就是 按百分比拉伸, 高宽比不变,那么图案不会变形,在一定的范围拉伸/收缩原创 2015-12-22 18:16:00 · 2649 阅读 · 0 评论 -
TextView行间距设置
TextView 设置行间距设置,两种方式:android:lineSpacingExtra="10px" : 绝对值android:lineSpacingMultiplier="1.2" : 相对值问题是,增加行间距后,即使TextView只有一行,底部也会出现行间距的空白高度,导致文字看上去不居中了解决方法:如果TextView 文字距离底部是有边距的,那么这个边距用行间距的原创 2015-12-24 16:08:40 · 1819 阅读 · 0 评论 -
IllegalStateException: TimerTask is scheduled already
上线之际突然测试出app奔溃,偶滴内心也是奔溃的啊奔溃信息: Caused by: java.lang.IllegalStateException: TimerTask is scheduled already原创 2017-02-23 12:32:51 · 1708 阅读 · 0 评论