android
iteye_7155
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一些机型TextView:ellipsize设置了Marquee还显示省略号的问题
奇葩的发现在三星S4上设置TextView的ellipsize="marquee"居然显示省略号。翻阅TextView源码发现有一段代码涉及到ViewConfiguration if (ViewConfiguration.get(context).isFadingMarqueeEnabled()) { setH...原创 2013-12-13 10:32:21 · 668 阅读 · 0 评论 -
写了个android gif显示控件,很简单很方便,开源了
android并不能直接显示gif。有不少人写解码器解析gif,当然最简单的是用webview来显示gif了。实际上android内置了gif解码器(不看apidemo的亏大了吧),采用native的方式,所以实现gif显示还是很简单的。 为了方便使用我稍作处理,把它做成一个view,使用就直接加到布局就可以了。具体详情请移步 android-gif-view...原创 2012-04-16 23:51:29 · 268 阅读 · 0 评论 -
android嵌入lua
java嵌入lua有多种方案可选择,比如纯java的luaj 、纯C jni的 luajava还有个lua4j。在android中嵌入lua,我偏向使用luajava(当然面对除arm外的平台如x86、mips或需单独打包). 要使用luajava除了要下载luajava还要下载lua源码,需要注意的是luajava并不支持lua2.0以上的版本,我测试支持的版本是5.1.4,而且luaja...原创 2012-07-31 21:55:41 · 359 阅读 · 0 评论 -
android4.x系统设置字体大小导致应用布局混乱的解决方案
从android4.0起系统设置的”显示“提供设置字体大小的选项。这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。下面是解决方案 Resources res = getResources();Configuration config=new Configuration();config.setToDefaults();res.u...原创 2012-08-21 23:44:53 · 175 阅读 · 0 评论 -
textview多行ellipsize="end"不显示省略号的解决方法(一)
textview多行设置ellipsize="end"并不显示省略号。这是android4.0以下系统的bug,google发现有个家伙写了个开源控件http://android-textview-multiline-ellipse.googlecode.com/ 号称解决该问题。但实际测试还是存在问题,只好自己另寻找解决方案。下面的代码替换掉该控件的resetText函数,几乎可实...原创 2012-08-22 22:50:11 · 1694 阅读 · 0 评论 -
textview多行ellipsize="end"不显示省略号的解决方法(二)
在上一文 给出了 textview多行设置ellipsize="end"并不显示省略号的解决方法(当然如果不是中文 android-textview-multiline-ellipse 也是个解决方案)。上一文中通过measureText计算出最后一行的文字是否超出了显示范围,由于文字的宽度不是均匀的,所以这个方法在某些时候就会出现多一两个字或少一两个字。下面给出第二中解决方法的主要代码:...原创 2012-09-15 23:07:12 · 970 阅读 · 0 评论 -
仿网易新闻栏目滑动TAB效果
网易新闻这种滑动TAB效果,在android软件中还是比较常见的(是不是原创我不清楚,仅当学习研究之用~~~)。 比较常见的做法是:在FrameLayout里包装TAB bar,再在FrameLayout加一个虚拟的tab,切换tab时用虚拟tab在之前选中和当前选中的tab距离之间做一个移动动画。 用此种方法的十之八九,但在复杂的布局中FrameLayout不是...原创 2012-05-06 21:56:53 · 220 阅读 · 0 评论 -
吐槽--ExpandableListView
需要把ExpandableListView的适配器(继承自BaseExpandableListAdapter)同时绑定到AutoCompleteTextView,实现搜索过滤功能。实现了接口Filterable,以为成功在即,既然编译抛错误 The generic method setAdapter(T) of type AutoCompleteTextView is not app...原创 2012-05-07 23:42:21 · 153 阅读 · 0 评论 -
android中角标的实现
如下图,角标在移动设备中是比较常见的ui元素。各种“最新”、“vip”、“最热”之类的层出不穷。 在展现上最简单的做法是让ui同学ps一张角标图片输入“最新”、“vip”、“最热”等盖在要特别醒目提醒的控件上面即可。当然偷懒是没有一劳永逸的做法的,图片实现带文字的角标在当下android设备如此繁荣的情形下,码工们必然会为千奇百怪的适配而劳碌成大牛的,如果频繁更换图片...原创 2013-10-10 23:24:16 · 386 阅读 · 0 评论 -
游标泄漏(CursorLeak)
通常,使用try-finally来确保程序异常时能正常关闭游标。 Cursor cursor = null;try { cursor = getContentResolver().query(URI, .....); //dosomething} finally { if (cursor != null) { cursor.close();...原创 2012-10-27 23:48:46 · 514 阅读 · 0 评论 -
除TextView超链接下划线
没发现有相关的属性,google一下都是重写Span。做个记录 private void stripUnderLines(TextView tv) { try { Spannable text = (Spannable) tv.getText(); if (text == null) return; URLSpan[] old ...原创 2013-12-13 10:11:11 · 157 阅读 · 0 评论 -
布局中@null的代码实现方式
布局中通常会用到@null。如RadioButton常用的技巧通过RadioGroup实现Tab,需要设置android:button="@null"。如果要在代码中动态创建控件,android中并不能找到相关的属性或方法。搜索均无解决办法,最后想到一个变通的方法:通过透明色获取drawable。setButtonDrawable(getResources().getDrawable(a...原创 2011-11-16 21:16:08 · 366 阅读 · 0 评论 -
webview页面随设备分辨率缩放
android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。即使是ZoomDensity.setDefaultZoom设置了缩放...原创 2012-12-03 21:48:46 · 575 阅读 · 0 评论 -
viewflow的兼容问题
本打算用ViewFlow来实现项目中的相关功能的。在该项目的主页 里作者只是提醒在api level8以下注意事项The manifest states a min sdk version of 4, which is true. But in any case you want to support an api level < 8 you will have to for...原创 2014-01-15 20:48:27 · 151 阅读 · 0 评论 -
ListView嵌入ViewPager等横向滚动控件冲突的终究解决方案
ListView嵌入ViewPager等横向滚动控件,会导致ViewPager左右拨动和ListView手势冲突。按经验(Gallery中的子视图处理Click事件)只要比对滑动的X坐标大于Y坐标,就交由ViewPager处理,应该是个简单的问题。实际search到的比较火方案的思路是用SimpleOnGestureListener的onScroll回调中判断X、Y坐标拨动绝对值是否...原创 2014-01-20 21:34:21 · 311 阅读 · 0 评论 -
ColorDrawable draw方法的兼容问题
android内置的ProgressBar控件里不少的方法充斥着交叉的synchronized锁。很多时候刷进度导致ProgressBar显示不出来,也没见哪里设置隐藏的,估计是锁导致的,浪费时间看源码。android ui的更新本来就限制死在ui线程里,乱加神码锁,脑残!解决问题只能自己画进度条了。 UI元素比较简单,不需要动画、SecondaryProgress,所以可以简...原创 2014-05-21 21:47:13 · 249 阅读 · 0 评论 -
TextView支持拷贝&粘帖
让TextView支持长按弹出系统自带的拷贝、粘贴功能,发现国内外的论坛提供的解决方法都不怎么理想。多数用editview来模仿,不过实现的效果实在不怎么好。 从android sdk 11起google添加了新api TextIsSelectable控制TextView是否支持拷贝、粘帖功能,不过这个功能在v11以下则不那么好彩了。 查阅TextView源码发现setTextIsS...原创 2013-01-10 21:25:45 · 331 阅读 · 0 评论 -
调用service静态方法抛RuntimeException问题
假设有一个service类是 AbcSvr在其内有一个static方法供外调用启动自己。 public static void startAbcSvr(Context ctx ) { ctx.startService(new Intent(ctx, AbcSvr.class)); } 在某种情况下回抛出Exception Except...原创 2013-02-06 10:50:32 · 775 阅读 · 0 评论 -
ZXing CaptureActivity黑屏问题
ZXing的CaptureActivity在其他activity切换回来时会出现黑屏现象,跟踪发现surfaceDestroyed并不一定能调用到。 在ZXing项目找到zxing不支持tabhost的答复。 Project Member #1 srowenThe app doesn't use a TabHost. If you are writing your o...原创 2013-02-06 11:05:31 · 654 阅读 · 0 评论 -
view 在Animation后设置隐藏失效问题
场景: 假设有一个view,在RotateAnimation动画完后需要隐藏掉,但调用 setVisibility 失效。 解决的办法: view.setAnimation(null),再setVisibility...原创 2013-02-06 11:15:04 · 623 阅读 · 0 评论 -
GridView未设置margin、padding容器内出现空隙问题
GridView未设置margin、padding容器内出现空隙问题。 花了不少时间查看sdk源码最好才发现是gidview的listSelector中的图片grid_selector_background_xx.9.png画了可见区域导致的空隙。 解决办法很简单: android:listSelector="@android:color/transpar...原创 2013-02-06 11:21:15 · 580 阅读 · 0 评论 -
一个android sqlite CRUD代码生成小工具
把之前的文章合并到这里,添加bulk批量操作函数.android sqlite也无非是CRUD,所以通常是Ctrl+C、Ctrl+V,不过拷贝的代码容易出错浪费不少苦逼的时间。android sqlite的ORM的开源项目现在也有不少,不过对于一个嵌入式程序除了性能也需要考虑包的大小,所以ORM在嵌入式来说起码现在还不适合时机。 这个小工具功能很简单,不添加任何外部引用,使用...原创 2013-03-12 15:24:35 · 169 阅读 · 0 评论 -
BroadcastReceiver的生命周期
BroadcastReceiver在android中是一特色功能.android系统的很多消息(如系统启动,新短信,来电话等)都通过BroadcastReceiver来分发.BroadcastReceiver的生命周期是短暂的,而且是消息一到达则创建执行完毕就立刻销毁的.为了说明这一点,我通过注册一个Alarm Service每7秒钟触发产生一次BroadcastReceive事件. ...原创 2010-02-26 23:27:25 · 181 阅读 · 0 评论 -
android学习笔记之一常用控件
个人学习android做的笔记,贴出来备忘. 1,EditText 主要函数:setText/getText设置/获取文本内容,setHint设置缺省显示内容; 2,RadioGroup,RadioButton RadioButton的isChecked()判断是否被选中 获取选中RadioButon的ID:设置RadioGroup.setOnCheckedChangeLi...原创 2010-02-25 22:04:45 · 172 阅读 · 0 评论 -
android学习笔记之二Dailog(对话框)
1,创建 a,new AlertDialog.Builder(Context context) b,一些设置 c,create()创建 d,show()显示 e,dismiss()退出对话框 2,常用方法 setIcon:设置图标 setTitle:设置标题 setPositiveButton:设置 确定按钮 setNegativeButton:设置 取消按钮 setNeutralBu...原创 2010-02-25 22:09:13 · 157 阅读 · 0 评论 -
android学习笔记之三菜单
1, a,创建.重写public boolean onCreateOptionsMenu(Menu menu) menu.add添加菜单项 b,监听菜单选中事件.重写public boolean onOptionsItemSelected(MenuItem item)//item.getItemId()为菜单项的id 2,带子菜单的菜单 重写public boolean onC...2010-02-25 22:11:17 · 113 阅读 · 0 评论 -
android学习笔记之四TabHost布局
1,继承自TabActivity类2,getTabHost()获取TabHost实例3, LayoutInflater.from(this).inflate(界面布局Id, tabHost.getTabContentView(), true);4,添加选项卡 tabHost.addTab( tabHost.newTabSpec(选项卡Tag) //返回TabSp...2010-02-25 22:12:48 · 125 阅读 · 0 评论 -
android学习笔记之五提醒(Toast,Notification)
[Toast] 1,显示提示信息 public static Toast makeText (Context context, CharSequence text, int duration).show() public static Toast makeText (Context context, int resId, int duration).show() duration可以是:T...2010-02-25 22:15:03 · 151 阅读 · 0 评论 -
android学习笔记之六广播(BroadcastReceiver)
用于接收外部事件(注意BroadcastReceiver是用时创建用完后即摧毁的) 1,获取 a,注册 Context.registerReceiver (BroadcastReceiver receiver, IntentFilter filter) receiver 为获取BroadcastReceiver事件的类 filter 事件过滤器为sendBroadcast...2010-02-25 22:18:11 · 159 阅读 · 0 评论 -
android学习笔记之七在Activity之间传递数据
[传入] 1,设置传入 a,新建一个Bundle实例,Bundle.putXX添加数据,Intent.putExtras传递如Bundle参数 b, Intent.putExtra设置键值对 startActivityForResult启动另外一个Activity [获取传入] getIntent().getExtras()返回Bundle存储其他Activity传入的数据 b,传出返回...2010-02-25 22:19:25 · 120 阅读 · 0 评论 -
android学习笔记之十服务(Service)
Service拥有一个单独进程的模块. 1,继承自Service类,须实现public IBinder onBind(Intent intent) 2,通过startServie触发运行,stopService终止运行 生命周期: onCreate(如果是第一次运行) -> onStart -> onDestroy 3,绑定触发(调用4功能前提) boolea...2010-02-26 21:41:38 · 132 阅读 · 0 评论 -
android学习笔记之十一数据存储(Shared Preferences、SQLite)
android数据的存储方式可以用标准的j2se的api文件存储和网络存储方式.以下是android的其他两种存储方式1,Shared Preferences是一个简单键值对的xml格式的存储方式 a,读取 getPreferences (int mode) 返回SharedPreferences实例 mode Activity.MODE_PRIVATE, Activit...原创 2010-02-26 21:47:32 · 214 阅读 · 0 评论 -
android学习笔记之十二进程通信(IPC)
IPC在android是一个非常独特的实现方式,它是通过binder 驱动来实现不同进程的通信的.深入的了解清看李先静的<<Android IPC机制详解>> 不同进程之间交换数据通过Parcelable包装交换数据.可以通过Intent在不同的进程之间传送数据. 1,Parcelable包装交换数据实现 a,新建一个实现Parcelable接口的Wrap...原创 2010-02-26 21:58:08 · 123 阅读 · 0 评论 -
Android的布局
UI设计中使用XML(类XML)语言描述是一大趋势.AS中的界面UI部分是类XML,微软的WPF和Silverlight也采用类XML语言,当然在网页上的XHTML更是XML大应用了.或许由于Google是互联起家的缘故,所以在Android的界面布局中到处可以看到网页布局的影子.当你看到findViewById是否会想去js中经常用到的document.getElementByI...原创 2010-02-25 22:01:18 · 108 阅读 · 0 评论 -
定制android通知(Notification)
Notification通知界面可以用自己定义的界面来显示。下面是我实现的带进度条的通知效果 下面是主要实现部分代码,比较简单直接看代码可以了。 nf =new Notification(R.drawable.icon,"带进度条的提醒",System.currentTimeMillis()) ; nf.icon = R.drawable.icon; n...原创 2010-02-27 10:51:29 · 154 阅读 · 0 评论 -
分享一个查看apk中xml的工具
开源项目android4me 其AXMLPrinter2可以方便的把apk中已经序列化的xml还原为文本格式 把AXMLPrinter2.jar拷贝到C盘,在控制台cd到要解压出来的apk文件夹,执行下面的命令就可以把所有的xml还原文本格式了 for /r . %a in (*.xml) do @java -jar c:\AXMLPrinter2.jar "%a">&...2010-02-27 11:02:38 · 718 阅读 · 0 评论 -
smali反编译dex
用Dedexer除了可以反编译其内附的dex,其余的都未成功过。smali可以顺利反编译,而且可以把你修改过的代码重新编译成classes.dex比较邪恶 反编译命令 baksmali-1.2.jar 【dex文件】 -o classes重新编译 smali-1.2.jar 【需编译文件夹】...原创 2010-02-27 11:16:20 · 287 阅读 · 0 评论 -
whatsnew界面
当下 一些比较流行的android软件在首次安装启动时会显示一连串的whatsnew界面。whatsnew除了告诉用户软件版本升级带来的新功能,同时也可以是软件使用的操作指引,使用户更快熟悉软件。下面是一些软件类似功能的软件的截图. 从截图看whatsnew的每一页是一幅图片和描述文字,不同的页面可以通过拨动来切换。文字是对图片的阐述,而图片和文字都是对软件某个功能的描述...原创 2011-12-20 22:48:48 · 541 阅读 · 0 评论 -
windows下怎么下载android源码?很简单!GO!GO!
首先得下载一个GIT在windows可以用PortableGit。有了git只能手动的输入要下载android源码的某部分,不过可以从以下地址http://android.git.kernel.org/?a=project_index 得到所有可以下载的源码。由于这个列表并不能直接用在PortableGit命令中所以我写了一个VBS脚本来转换szFolder ="K:\Hemowolf\SRC...2010-07-01 23:15:35 · 165 阅读 · 0 评论 -
Gallery中的子视图处理Click事件
Gallery中如果是要响应某一视图的点击事件只要设置setOnItemClickListener即可。通常的照片浏览不会有复杂的交互处理逻辑。但是如果gallery的视图不是简单的一张照片而是复杂的视图(Gallery的灵活应用将会为您带来很多的便利)。如需要模仿多屏切换的桌面效果(如android桌面的workspace效果),除了使用ViewFlipper或从android...原创 2011-12-30 22:46:37 · 228 阅读 · 0 评论
分享