- 博客(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 2156 2
原创 Android修改系统语言(DatePicker等组件显示的语言不对,该怎么办)
private void updateLocale() { try { Locale locale = getResources().getConfiguration().locale; if (locale == Locale.SIMPLIFIED_CHINESE) { //常量比较 return;...
2019-11-18 19:04:04 1060
原创 在Android上使用libgdx-box2d物理引擎
前言相比Ios UiKit原生支持物理引擎,Android确实麻烦的不要不要。为什么用 libgdxAndroid上最方便的方案是jbox2D,缺点是在java层实现,物理多了之后性能很卡。笔者近期没有测试,11年左右在里程碑1上使用的时候那是巨卡无比。libgdx的物理引擎其实是封装的native版本box2D,在满足性能需求的同时,避免了开发JNI的烦恼,对于java程序员来说目...
2019-04-10 11:32:51 1007
原创 Battery Historian 环境搭建
项目地址https://github.com/google/battery-historian安装方式Docker 或者通过go 编译。README 中 Docker使用的镜像地址国内使用不了。可以使用第三方镜像,但是版本一般都很老,不靠谱。建议自行在本地编译。或者直接使用下面这个现成服务:https://bathist.ef.lc/...
2018-03-28 21:44:33 664
原创 Android可动态改变compoundDrawable颜色的TextView
常常可以看到,许多应用的TabItem都是以Icon+Text的形式存在,例如微信,京东。当tabItem被置为selected状态的时候,icon和文字的颜色会发生变化。如下图所示:对于这种图片+文字的排版方式我们可以通过一个TextView实现 <TextView android:drawableTop="@draw
2016-03-01 14:15:03 2409
原创 Android6.0权限适配实践
Android6.0权限适配实践概要判断是否需要请求权限如何请求权限如何部分请求权限处理权限请求回调关于“自定义提示”的说明问题一:获取权限后进入设置取消权限再回到应用的问题问题二:勾选“不再询问”的说明判断是否需要请求权限关于权限申请,第一手的资料可以查看官方文档:http://developer.android.com/intl/zh-cn/training/permission
2015-12-23 13:41:20 5184
转载 自定义可点击 富文本组件
zz: http://www.cnblogs.com/luction/p/3645210.html有的时候可能想在TextView中添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定的某张图,而是根据内容进行定制的,这更像一个view。 当然,如果你不是view而是固定的图片,比如发信息时用表情图片替代特殊符号,那么实现起来会
2015-08-25 21:08:58 919
原创 Android通过build.gradle配置应用版本等信息
android { compileSdkVersion Integer.parseInt(System.properties['compileSdkVersion']) buildToolsVersion System.properties['buildToolsVersion']可以读取整个项目的gradle.properties中定义的值:systemP
2015-08-25 21:06:41 863
原创 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 519
原创 Alpha百分比对应表
HexOpacity Values100% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 26
2015-04-26 11:11:14 2078
原创 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 1119
原创 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 977
原创 Android 5.0 通讯录sort_key不可用
官方提交如下:https://android.googlesource.com/platform/packages/providers/ContactsProvider/+/a6a9fa802d1b56c206c670ca1d313bc64effcb5d%5E!/commita6a9fa802d1b56c206c670ca1d313bc64effcb5d
2015-01-20 19:17:14 875
原创 Android 有checkbox时Activity启动默认不显示输入法。
网上很多资料说要放一个空的Linearlayout,完全是在误导大众,正确的方法如下: Android Manifest对Activity做如下设置:android:windowSoftInputMode="stateHidden"
2015-01-10 12:00:45 1160
原创 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 7923
原创 Android Transition框架介绍&使用
简介自KitKat起,Android加入了Android Transition框架,可以帮助我们做一些Activity级别或View级别的动画效果,今天的内容就是如何在View上使用Transition。有别于传统的Animation,Transition需要对动画前后设置不同布局,通过相应的API实现两个布局的切换动画。而传统Animation只会对应一个布局文件,动画结束时,即使设置了
2014-12-02 16:21:13 3895 3
原创 Android自动化测试之UIAutomator(三)---比对测试截图
本文适合所有以图片作为输出的自动化开发工具(不仅限于Android)。 当我们进行一组自动化测试后,除了通过断言,往往还会采用截图比对的方式分析测试结果,这种情况下人力再次成为效率的瓶颈,能否通过一定的方式对图片进行预处理,将Diff 的区域标出,方便开发人员进行分析呢? 本文的方法是通过一个bash脚本获得图片的不同之处,并生成一个可视化的html文件。以帮助开发/测试人员快速分析测试结果。
2014-11-17 15:16:18 4318
原创 Android时间获取与使用
编写Android网络程序时难免会遇到手机时间不准确的问题,本文总结了一些常用的时间获取与校正方法:转载请注明:http://blog.csdn.net/xzy20461.获取本机当前时间: Time local = new Time(); local.set(System.currentTimeMillis()); mLocalTim
2014-11-15 16:12:59 3553
原创 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 633
原创 Android动态setId,避免id重复
当一个布局中Add了两个id相同的控件时,通过findVIewById会出现错误。解决方法如下:1.通过 View的generateViewId()方法获取一个可用 id.在手动进行setId.需要API LEVEL 17API LEVEL 17以下可以直接使用该函数的代码:public static int generateViewId() {
2014-10-31 14:34:47 8631
原创 Android Maven打包批量替换资源文件(overlay换皮肤)&AAR打包依赖模块覆盖策略
1.AAR打包覆盖主module(APK)会将AAR中同名资源覆盖:策略如下:资源文件例如图片,layout是采用覆盖方式。values文件例如strings.xml是采用合并方式。有依赖的模块只能采用aar进行打包,例如ui库等二方库。建议将所有模块共同的resource资源放到通用module中,并且建立相应的命名机制,防重复。
2014-10-31 14:26:44 3214
原创 Android Maven 打包注意事项
最近项目中使用Maven进行打包,坑略多,记录如下:1.支持AAR格式library要求android mav
2014-10-26 15:44:17 904
原创 Android EditText输入最大值提示功能
有时,我们会对EditText添加最大长度限制,在EditText达到输入上限时阻止继续输入并弹出提示。这个问题看似简单,但很难处理的完美。由于EditText无法拦截软件盘事件,常规的通过TextWatcher,OnKeyListener,等方法都会存在一定的问题。经过反复试错,终于发现以下方案:1.实现一个InputFilter,在InputFilter中判断输入长度,并弹
2014-10-11 21:00:10 2981
原创 Android设置壁纸的几种方案
Android设置壁纸有许多方法,主要思路有两种:1:通过WallpaperManager设置2:通过系统程序设置下文将分开说明:通过WallpaperManager设置该方法可以直接将图片置为壁纸,对于所有平台的Android系统都使用,但无法裁剪/调整图片。try { WallpaperManager wpm = (WallpaperManager) g
2014-09-28 14:18:38 12256
原创 我的ubuntu 常用工具及配置
1.set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8set encoding=prcset tabstop=4
2014-09-20 17:08:53 437
原创 git 的常规使用
1.切换branch:如果本地有多个branch可以用checkout切换git checkout dev2.创建一个本地分支,并对应一个远程分支git checkout -b dev origin/dev3.查看远程分支git branch -r4.查看本地分支git branch
2014-09-16 13:21:01 563
原创 gksudo gedit /etc/X11/xorg.conf In the sub-section "display" add this code or modify if already exis
gksudo gedit /etc/X11/xorg.confIn the sub-section "display" add this code or modify if already exist:virtual 2880 1024Where 2880 and 1024 are the value returned by the error: required virtua
2014-09-15 19:31:11 724
转载 shell: 统计当前目录下文件数
Learning Ubuntu for Android:Linux下查看当前目录下文件的个数ls -l | grep “^-” | wc -l查看当前目录下文件的个数,包括子目录里的ls -lR| grep “^-” | wc -l查看某目录下文件夹(目录)的个数,包括子目录里的。ls -l
2014-09-15 19:29:21 659
原创 如何解决: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 508
原创 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 744
转载 Android常用String 式样
zz:http://henzil.easymorse.com/?p=174 目前用到的有以下几点:加粗字体 斜体字体 给字体加下划线\n 换行\u0020表示空格\u2026表示省略号使用<b>和<b>来打印出这样的文字;“<”表示“使用textView.setText(Html.fromHtml
2014-09-15 13:09:19 504
转载 Android Lint分类及常见错误
Android Developer:ADT 提供了代码检查工具,可以帮助你检查代码规范,下面是一些相关说明: 常见类型:一, Correctness:Messeges(1)字符串国际化不完全(2)国际化的字符串,在默认位置(default locale),没有定义 二,Correctness(1)Xml中view的id重名(2)代码中使用
2014-09-15 12:55:04 523
原创 Android Screen size说明
关于screen 的一些参数说明如下,App的开发者可以关注一下。 1.screen sizesmall: >426px * 320pxnormal: >480px * 320pxlarge: > 640px * 480pxxlarge: >960 * 720 2.screen ratioratio : (4:3
2014-09-15 10:09:03 1556
原创 删除所有.svn/.git
Q:android repo下来的代码导入svn时,各目录.git/.repo的文件夹需要先进行删除,如何一次性删除?A:find -name '.git*' |xargs rm -rf
2014-09-15 10:08:23 519
转载 ANDROID开发实用小工具
分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗一、find bugs 静态检查工具http://findbugs.sourceforge.net/FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析详情请参考
2014-09-15 10:07:44 496
原创 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 672
原创 UBUNTU PIDGIN支持LYNC,并且支持语音
* 更新系统-------------------------------------------------------------------------------- $sudo apt-get update && sudo apt-get dist-upgrade===============================================
2014-09-15 07:32:48 2486
原创 sudo出现sudo:must be setuid root问题的解决方法
进入recovery模式vmware需要在开机按住shift 进入drop root ......依次输入:mount -o remount,rw /chown root:root /usr/bin/sudochmod 4755 usr/bin/sudoreboot 注意:千万不要给/usr/bin直接加权限
2014-09-15 07:29:37 757
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人