
Android开发
Glory@OUC
Ph.D. in Computer Science
展开
-
错误:Only the original thread that created a view hierarchy can touch its views——Handler的深入解析
这个错误很常见,基本上写线程操作都遇到过这个错误。根本原因是view控件的线程安全问题,通俗点讲就是所有的更新UI操作都需要在主线程(也就是UI线程中完成),而不能在新开的子线程中操作。基本思路:既然子线程需要更新UI,但子线程自身又不能完成任务,所以只能通过建立一个通信机制,当子线程需要更新UI时,发消息通知主线程并将更新UI的任务post给主线程,让主线程来完成分内的UI更新操作。这个原创 2014-05-12 16:45:27 · 5823 阅读 · 2 评论 -
bitmap使用全程记录
今天做了一个简单的应用,大致是向服务器请求一张图片,然后点击跳转到另外一个界面上使得这张图片可以自由伸缩。首先是在ActivityA中请求图片,使用Ajax请求,代码如下所示。 // 2014.5.12晚 AQuery aq = new AQuery(RepairInfoDetail.this); mViewPhotoText = (TextView) findViewBy原创 2014-05-13 15:15:39 · 1506 阅读 · 0 评论 -
dp、sp、px傻傻分不清楚[完整]
[无线手册-4] dp、sp、px傻傻分不清楚[完整]折折熊 · 1 年前做移动设计的同学,不管是原生app或者web app,应该对字体字号都是很头痛的问题。根本原因是,我们用唯一分辨率的电脑,设计各个不同尺寸大小分辨率的设备,那简直要疯掉了。但不要着急,我们先来理解一下一些名词:我们一般会碰到的度量单位主要有:dpi、ppi、dp、sp、px、pt、in。其中,px应该转载 2014-08-27 09:39:10 · 2415 阅读 · 0 评论 -
安卓如何设置控件的圆角矩形背景
当我们开发过程中需要实现控件的圆角矩形或者给背景添加边框时,最佳的办法不是生成背景图片或者添加ImageView当做边界,而是利用Shape来做。思路就是在drawable文件夹中自定义一个美化布局,代码如下 <stroke android:width="2dp" android:color="#DCD8D8原创 2014-08-27 14:03:09 · 5641 阅读 · 0 评论 -
bug android.content.res.Resources$NotFoundException: String resource ID #0x0
android.content.res.Resources$NotFoundException: String resource ID #0x0 找不到资源文件ID #0x0原因分析如下:遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所以就会报出这个bug原创 2014-09-12 20:32:06 · 2259 阅读 · 0 评论 -
安卓如何实现list的全选效果
背景:在做“购物车”和“我的关注”、“收货地址”这一类列表问题时,往往UI设计师会将外层Activity添加一个“全选”功能的checkbox(姑且叫他父checkbox),而子checkbox则存在于列表的每一个项,即listitem,而listitem往往写在一个adapter中。如何完成内外层,即内层adapter和外层Activity的传递呢?外层Activity向内层adapter传原创 2014-09-29 16:52:50 · 1846 阅读 · 0 评论 -
IDEA logcat界面消失
logcat是IDEA界面最重要的调试输出窗口,youshi原创 2014-11-14 10:54:46 · 14679 阅读 · 1 评论 -
TimerTask中如何通过Handler交由UIThread更新UI
有两种方式:第一种:post给Handler // 开启线程刷新 handler = new Handler(); timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() {原创 2014-10-31 21:44:07 · 1334 阅读 · 0 评论 -
开发问题及解决 java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams
Caused by: java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams 最近,在android中用代码动态改变某种布局(组件)的高度时,会遇到如题所示的类转换异常。上网查了一下,如下所示:These supply parameters to the parent o转载 2014-10-20 16:37:28 · 1259 阅读 · 0 评论 -
IDEA打开时如何不自动重新打开上一次的项目
见图另外不要每次打开之前的项目都重新import了,File中有一项“reopen”,其中有最近所作的项目原创 2014-12-08 19:59:32 · 5803 阅读 · 0 评论 -
Some projects cannot be imported because they already exist in the workspace
以前老是有这个问题,一直没有注意,今天决定要搜下解决下,在国外的网站上看到个小窍门,分享给大家! 问题一般情况下都是项目已经在工作空间路径下了,而又选择了:Copy projects into workspace, 所以这时你只需要把“Copy projects into workspace”前面的勾去掉,并且点刷新按钮(refresh); 再看下就应该可以了!转载 2015-07-10 15:46:13 · 485 阅读 · 0 评论 -
StringTokenizer类的使用
StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean转载 2015-09-27 19:58:45 · 386 阅读 · 0 评论 -
java中函数的参数传递详解
本文转载自 http://blog.youkuaiyun.com/yunzhongguwu005/article/details/9737215总结: 1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针)。也就是说函数内对参数所做的修改会影响原来的对象。 2.当将基本类型或基本类型的包装集作为参数传递时,传递的是值。也就是说函数内对参数所做的修改不会影响原来转载 2015-10-09 10:40:46 · 479 阅读 · 0 评论 -
Android中Thread和Service的区别(两篇不错的讲解)
http://my.oschina.net/u/242041/blog/206687很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。 1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异转载 2015-09-22 21:53:11 · 2783 阅读 · 1 评论 -
如何从服务器获取图片
今天写了安卓程序与服务器通信,其中需要从服务器获取图片。本来以为下载流、处理文件流很复杂,结果几句话就轻松搞定了。现在记在这里。 // (2014.5.1第一种方法)通过服务器返回的图片url,再次向服务器请求,添加动态新闻图片 // 读取Bitmap图片 try { Bitmap bm; URL url; url = new URL(map.get("activity原创 2014-05-08 22:16:09 · 7835 阅读 · 0 评论 -
Can't create handler inside thread that has not called Looper.prepare()
http://www.oschina.net/question/110098_76986一句话总结:在线程当中不能开启刷新UI的服务,否则会报以上错误,这些UI的处理要写在Handler里面原创 2014-03-31 22:28:25 · 904 阅读 · 0 评论 -
关于Layout_weight的布局问题
需要注意的是Layout_weight的值并不是越大其占得比重就越大!恰恰相反,如果有两个控件的属性值分别是1、2,则其屏幕分割比例应该分别是2/3、1/3。严格遵循这种比例关系的前提是两个控件的layout_width或layout_height(取决于哪个维度竞争屏幕空间)都为fill_parent。在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举转载 2013-11-16 16:31:12 · 1040 阅读 · 0 评论 -
ANR错误之 keyDispatchingTimedOut
最近一个程序报错,查看LOG才知道是ANR错误,提示原因为 keyDispatchingTimedOut .网上搜索了下,说是消息在队列里得不到及时处理,返回时找不到之前的view,所以一直等待,超过5s(android默认5秒没响应就弹出ANR对话框),就导致了ANR。可能触发ANR的情况:长时间的I/O处理,比如读写大文件,网络访问时造成的阻塞。执行耗时的运算,And转载 2013-11-16 16:32:22 · 1411 阅读 · 0 评论 -
Cursor的两个小总结
1. 查询数据库得到的Cursor用完后,一定要使用Cursor.close();否则会报错。Never Call Cursor.close() Expitically.2. 使用query()这个函数时,其中的String类型查询语句参数要注意规范。如 ACC.DATE + “=?”,一定不要写成“ACC.DATE = ?”,因为ACC.DATE是外部定义的一个所谓的全局字符串变量,其值等于原创 2013-11-16 16:37:13 · 1183 阅读 · 0 评论 -
XML布局引起的ClassCastException
<LinearLayout android:id="@+id/bottomLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:pad原创 2013-11-25 20:01:59 · 896 阅读 · 0 评论 -
应用程序安装后控制台报错:Permission Denial
本文转载自【低级趣味】。最近在调试程序的时候经常出现ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=转载 2013-11-28 21:41:31 · 966 阅读 · 0 评论 -
屏幕滑动效果的实现
今天的睡眠跟踪应用的开发完成了一个里程碑事件——顺利设计出滑动界面。先说一下效果:在点击”结束睡眠“后,会进入一个睡眠结果的显示界面,其中第一个界面只显示睡眠结果的加速度柱状图,第二个界面显示睡眠翻身次数、睡眠时间等等。两个界面之间是可以左右滑动的,并且从程序实现角度来讲,两个界面是在同一个Activity中,而不是分立各自显示。当然,为了不浪费各位看官的时间,先讲明一下:两个界面都没有实原创 2013-11-29 22:58:30 · 1588 阅读 · 0 评论 -
SQLite数据库报-1错误
今天调试了一段代码,报-1错误(根据行、列名未找到对应的行、列)。第一感觉是对应的数据库是不是有问题,找了半天发现该有的行列都没有缺,行列名也没有写错。再以为是数据库结构变化, 需要重新安装应用程序,于是重新部署在手机上,还是报同样的错误。最后终于发现了问题,是自己的一个小失误:在定义Cursor时,query()函数的第二个参数要求填写对应的列名!Cursor返回的实际上是一个子表,并且剩下原创 2013-12-11 20:27:45 · 1793 阅读 · 0 评论 -
SQLiteException:errorcode 5: database is locked
入门级:多线程操作数据库报错:SQLiteException:errorcode 5: database is locked。出错原因分析及如何应用单例模式解决。原创 2014-03-11 16:06:45 · 4042 阅读 · 1 评论 -
eclipse不自动弹出提示(alt+/快捷键失效)
原文转载自 http://www.apkbus.com/android-104663-1-1.html最近公司电脑上的Eclipse没有了自动提示功能,也不是全部不提示,大多数情况下按下“alt+/”键还会产生提示,但是当我在java项目中邪main方法和syso的时候,“alt+/”则会失效,今天在网上搜索了一下结果,主要有一下几种方法: 1.次方法用于没有一点提示的情转载 2014-03-08 16:06:51 · 1488 阅读 · 0 评论 -
android中如何更新adt
原文转载自 http://jingyan.baidu.com/article/9113f81bd44a8a2b3314c740.html方法/步骤1首先,要点击这里的install new software。。按图上的方法找到并点击。2接下来在这里输入这样的一个网址。http://dl-ssl.google.com转载 2014-03-07 11:27:21 · 901 阅读 · 0 评论 -
Android特效 五种Toast详解
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。而且Toast主要用于向用户显示提示消息,接下来巴士为大家总结了Android五种Toast特效详解,当然大家也可以根据自己的需求来自定义自己想要的效果。Android五种Toast特效详解1.默认效果:代码:Toas转载 2016-07-20 10:51:59 · 790 阅读 · 0 评论