- 博客(44)
- 资源 (6)
- 收藏
- 关注
原创 ListView优化新玩法,打造易维护,高性能,快速开发的ListView
如果让你实现一个如下图所示的复杂的ListView你会怎么设计? 没准你会先继承一个BaseAdapter,实现其中的getView()方法, 通过getViewTypeCount(),getItemViewType(int position)等方法在getView()中添加一大堆if...else...语句块,生成对应Type的View。 当然,可能你还会想起ValueHolder模式,为每种Type定制一个ValueHolder对象,让性能大幅提升,也让代码大幅增加。 到最后这个自定义的BaseAdap
2014-09-30 11:18:07
2297
1
原创 Android修改系统语言(DatePicker等组件显示的语言不对,该怎么办)
private void updateLocale() { try { Locale locale = getResources().getConfiguration().locale; if (locale == Locale.SIMPLIFIED_CHINESE) { //常量比较 return;...
2019-11-18 19:04:04
1297
原创 在Android上使用libgdx-box2d物理引擎
前言 相比Ios UiKit原生支持物理引擎,Android确实麻烦的不要不要。 为什么用 libgdx Android上最方便的方案是jbox2D,缺点是在java层实现,物理多了之后性能很卡。笔者近期没有测试,11年左右在里程碑1上使用的时候那是巨卡无比。 libgdx的物理引擎其实是封装的native版本box2D,在满足性能需求的同时,避免了开发JNI的烦恼,对于java程序员来说目...
2019-04-10 11:32:51
1226
原创 Battery Historian 环境搭建
项目地址https://github.com/google/battery-historian安装方式Docker 或者通过go 编译。README 中 Docker使用的镜像地址国内使用不了。可以使用第三方镜像,但是版本一般都很老,不靠谱。建议自行在本地编译。或者直接使用下面这个现成服务:https://bathist.ef.lc/...
2018-03-28 21:44:33
784
原创 Android可动态改变compoundDrawable颜色的TextView
常常可以看到,许多应用的TabItem都是以Icon+Text的形式存在,例如微信,京东。 当tabItem被置为selected状态的时候,icon和文字的颜色会发生变化。如下图所示: 对于这种图片+文字的排版方式我们可以通过一个TextView实现 <TextView android:drawableTop="@draw
2016-03-01 14:15:03
2556
原创 Android6.0权限适配实践
Android6.0权限适配实践概要 判断是否需要请求权限 如何请求权限 如何部分请求权限 处理权限请求回调 关于“自定义提示”的说明 问题一:获取权限后进入设置取消权限再回到应用的问题 问题二:勾选“不再询问”的说明 判断是否需要请求权限关于权限申请,第一手的资料可以查看官方文档:http://developer.android.com/intl/zh-cn/training/permission
2015-12-23 13:41:20
5309
转载 自定义可点击 富文本组件
zz: http://www.cnblogs.com/luction/p/3645210.html 有的时候可能想在TextView中添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定的某张图,而是根据内容进行定制的,这更像一个view。 当然,如果你不是view而是固定的图片,比如发信息时用表情图片替代特殊符号,那么实现起来会
2015-08-25 21:08:58
1002
原创 Android通过build.gradle配置应用版本等信息
android { compileSdkVersion Integer.parseInt(System.properties['compileSdkVersion']) buildToolsVersion System.properties['buildToolsVersion'] 可以读取整个项目的gradle.properties中定义的值: systemP
2015-08-25 21:06:41
934
原创 TabActivity通过Intent向Child Activity传值
虽然TabActivity从API13 就废弃了,但是TMD项目中还在用,通过Intent启动应用时,Intent携带的信息只能传递到外层的TabActivity,在childActivity中通过getIntent()拿到的Intent并不是TabActivity的Intent. 解决方法: ChildActivity中通过getParent().getIntent()拿到Parent的i
2015-07-17 09:59:54
573
原创 Alpha百分比对应表
HexOpacity Values 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26
2015-04-26 11:11:14
2394
原创 Android 开发技巧 (资源文件篇)
Android开发中有一些容易被忽略的小技巧,本文是日常开发中的一些心得。 tip 1.tools命名空间 xmlns:tools="http://schemas.android.com/tools" AndroidStudio和ADT都支持实时显示xml布局效果,tools命名空间下的属性就是用来帮助实时加载显示效果的。 常用的如tools:text <RelativeLayou
2015-04-24 09:19:56
1204
原创 Android Studio升级1.0 现有程序 build.gradle配置文件更新
1.gradle插件版本更新: dependencies { - classpath 'com.android.tools.build:gradle:0.8.+' + classpath 'com.android.tools.build:gradle:1.0.0' } zipStorePat
2015-01-29 20:23:46
1041
原创 Android 5.0 通讯录sort_key不可用
官方提交如下: https://android.googlesource.com/platform/packages/providers/ContactsProvider/+/a6a9fa802d1b56c206c670ca1d313bc64effcb5d%5E!/ commit a6a9fa802d1b56c206c670ca1d313bc64effcb5d
2015-01-20 19:17:14
939
原创 Android 有checkbox时Activity启动默认不显示输入法。
网上很多资料说要放一个空的Linearlayout,完全是在误导大众, 正确的方法如下: Android Manifest对Activity做如下设置: android:windowSoftInputMode="stateHidden"
2015-01-10 12:00:45
1247
原创 LinearLayout显示分割线(Divider)
Android LinearLayout显示分割线有两种方式: 1.使用一个宽/高为1dp的View: android:layout_width="match_parent" android:layout_height="1dp" android:background="#FF0000" /> 2.直接使用LinearLayout的divider属性:
2014-12-20 18:39:49
8068
原创 Android Transition框架介绍&使用
简介 自KitKat起,Android加入了Android Transition框架,可以帮助我们做一些Activity级别或View级别的动画效果,今天的内容就是如何在View上使用Transition。 有别于传统的Animation,Transition需要对动画前后设置不同布局,通过相应的API实现两个布局的切换动画。而传统Animation只会对应一个布局文件,动画结束时,即使设置了
2014-12-02 16:21:13
4091
原创 Android自动化测试之UIAutomator(三)---比对测试截图
本文适合所有以图片作为输出的自动化开发工具(不仅限于Android)。 当我们进行一组自动化测试后,除了通过断言,往往还会采用截图比对的方式分析测试结果,这种情况下人力再次成为效率的瓶颈,能否通过一定的方式对图片进行预处理,将Diff 的区域标出,方便开发人员进行分析呢? 本文的方法是通过一个bash脚本获得图片的不同之处,并生成一个可视化的html文件。以帮助开发/测试人员快速分析测试结果。
2014-11-17 15:16:18
4626
原创 Android时间获取与使用
编写Android网络程序时难免会遇到手机时间不准确的问题,本文总结了一些常用的时间获取与校正方法: 转载请注明:http://blog.csdn.net/xzy2046 1.获取本机当前时间: Time local = new Time(); local.set(System.currentTimeMillis()); mLocalTim
2014-11-15 16:12:59
3772
原创 ubuntu 将Android放在host目录下,无法使用git命令的问题
fatal: Not a git repository (or any parent up to mount parent /home/kineam) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 遇到以上问题。 在对应的仓库下
2014-11-12 10:39:07
712
原创 Android动态setId,避免id重复
当一个布局中Add了两个id相同的控件时,通过findVIewById会出现错误。 解决方法如下: 1.通过 View的 generateViewId() 方法获取一个可用 id.在手动进行setId. 需要API LEVEL 17 API LEVEL 17以下可以直接使用该函数的代码: public static int generateViewId() {
2014-10-31 14:34:47
8801
原创 Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略
1.AAR打包覆盖 主module(APK)会将AAR中同名资源覆盖: 策略如下: 资源文件例如图片,layout是采用覆盖方式。 values文件例如strings.xml是采用合并方式。 有依赖的模块只能采用aar进行打包,例如ui库等二方库。 建议将所有模块共同的resource资源放到通用module中,并且建立相应的命名机制,防重复。
2014-10-31 14:26:44
3367
原创 Android Maven 打包注意事项
最近项目中使用Maven进行打包,坑略多,记录如下: 1.支持AAR格式library 要求android mav
2014-10-26 15:44:17
986
原创 Android EditText输入最大值提示功能
有时,我们会对EditText添加最大长度限制,在EditText达到输入上限时阻止继续输入并弹出提示。 这个问题看似简单,但很难处理的完美。 由于EditText无法拦截软件盘事件,常规的通过TextWatcher,OnKeyListener,等方法都会存在一定的问题。经过反复试错,终于发现以下方案: 1.实现一个InputFilter,在InputFilter中判断输入长度,并弹
2014-10-11 21:00:10
3110
原创 Android设置壁纸的几种方案
Android设置壁纸有许多方法,主要思路有两种: 1:通过WallpaperManager设置 2:通过系统程序设置 下文将分开说明: 通过WallpaperManager设置 该方法可以直接将图片置为壁纸,对于所有平台的Android系统都使用,但无法裁剪/调整图片。 try { WallpaperManager wpm = (WallpaperManager) g
2014-09-28 14:18:38
13055
原创 我的ubuntu 常用工具及配置
1. set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8 set encoding=prc set tabstop=4
2014-09-20 17:08:53
494
原创 git 的常规使用
1.切换branch: 如果本地有多个branch可以用checkout切换 git checkout dev 2.创建一个本地分支,并对应一个远程分支 git checkout -b dev origin/dev 3.查看远程分支 git branch -r 4.查看本地分支 git branch
2014-09-16 13:21:01
634
原创 gksudo gedit /etc/X11/xorg.conf In the sub-section "display" add this code or modify if already exis
gksudo gedit /etc/X11/xorg.conf In the sub-section "display" add this code or modify if already exist: virtual 2880 1024 Where 2880 and 1024 are the value returned by the error: required virtua
2014-09-15 19:31:11
826
转载 shell: 统计当前目录下文件数
Learning Ubuntu for Android: Linux下查看当前目录下文件的个数 ls -l | grep “^-” | wc -l 查看当前目录下文件的个数,包括子目录里的 ls -lR| grep “^-” | wc -l 查看某目录下文件夹(目录)的个数,包括子目录里的。 ls -l
2014-09-15 19:29:21
774
原创 如何解决:ANDROID中 ERROR GENERATING FINAL ARCHIVE: DEBUG CERTIFICATE EXPIRED ON 10/09/18 16:30 的错误
问题概述: 在导入一个app后提示如下错误: “Error generating final archive: Debug Certificate expired on 10/09/18 16:30” 原因分析: android要求所有的程序必须有签名,否则就不会安装该程序。在我们开发过程中,adt使用debug keystore,在 preference->and
2014-09-15 19:28:16
622
原创 Android 下载源码指定仓库 指定branch source
Android version和branch都很多,有时候需要下载多个分支的代码进行比对,可以通过-b 的方式下载. 例如: git clone https://android.googlesource.com/platform/packages/apps/Launcher2 -b ics-mr1-release 如果要不知道Android有那些分支可以用
2014-09-15 13:11:00
834
转载 Android常用String 式样
zz:http://henzil.easymorse.com/?p=174 目前用到的有以下几点: 加粗字体 斜体字体 给字体加下划线 \n 换行 \u0020表示空格 \u2026表示省略号 使用<b>和<b>来打印出这样的文字;“<”表示“ 使用textView.setText(Html.fromHtml
2014-09-15 13:09:19
566
转载 Android Lint分类及常见错误
Android Developer: ADT 提供了代码检查工具,可以帮助你检查代码规范,下面是一些相关说明: 常见类型: 一, Correctness:Messeges (1)字符串国际化不完全 (2)国际化的字符串,在默认位置(default locale),没有定义 二,Correctness (1)Xml中view的id重名 (2)代码中使用
2014-09-15 12:55:04
604
原创 Android Screen size说明
关于screen 的一些参数说明如下,App的开发者可以关注一下。 1.screen size small: >426px * 320px normal: >480px * 320px large: > 640px * 480px xlarge: >960 * 720 2.screen ratio ratio : (4:3
2014-09-15 10:09:03
1744
原创 删除所有.svn/.git
Q: android repo下来的代码导入svn时,各目录.git/.repo的文件夹需要先进行删除,如何一次性删除? A: find -name '.git*' |xargs rm -rf
2014-09-15 10:08:23
583
转载 ANDROID开发实用小工具
分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗 一、find bugs 静态检查工具 http://findbugs.sourceforge.net/ FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析 详情请参考
2014-09-15 10:07:44
558
原创 SVN批量增删
svn status|grep ! |awk '{print $2}'|xargs svn del svn status|grep ? |awk '{print $2}'|xargs svn add 同
2014-09-15 07:38:54
741
原创 UBUNTU PIDGIN支持LYNC,并且支持语音
* 更新系统 -------------------------------------------------------------------------------- $sudo apt-get update && sudo apt-get dist-upgrade ===============================================
2014-09-15 07:32:48
2572
原创 sudo出现sudo:must be setuid root问题的解决方法
进入recovery模式 vmware需要在开机按住shift 进入drop root ...... 依次输入: mount -o remount,rw / chown root:root /usr/bin/sudo chmod 4755 usr/bin/sudo reboot 注意:千万不要给/usr/bin直接加权限
2014-09-15 07:29:37
842
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅