Android学习笔记
文章平均质量分 51
画虎烂
每天反思,每天进步
展开
-
The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.
今天在使用低版本下的ActionBar,在继承ActionBarActivity时报了“The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. It is indirectly referenced from required .class files”错误,网上查了很久终于解决了原创 2014-01-02 17:09:06 · 11031 阅读 · 4 评论 -
使应用中的字体不受系统设置影响的两种方法
第一种使用dp来设置文字的大小第二种private void keepFontSize(){ Resources res = getResources(); android.content.res.Configuration config = new android.content.res.Configuration(); config.setToDe原创 2016-01-27 16:23:31 · 4856 阅读 · 0 评论 -
fresco自定义进度条ProgressBarImage
第一种:继承drawablepublic class ImageLoadingDrawable extends Drawable{ private Paint mRingBackgroundPaint; private int mRingBackgroundColor; // 画圆环的画笔 private Paint mRingPaint; // 圆环颜色原创 2016-01-26 14:45:04 · 4732 阅读 · 0 评论 -
fresco添加http header
今天使用fresco时,项目中在加载图片时添加了防盗链,需要在获取图片时添加header信息,研究了下fresco如何添加header,解决方案如下: 1、新建一个类ElnImageDownloaderFetcher,继承HttpUrlConnectionNetworkFetcher 2、将HttpUrlConnectionNetworkFetcher类的代码拷贝到新类 3、重写HttpURL原创 2016-01-25 16:14:10 · 3982 阅读 · 1 评论 -
Android ImageSpan不显示
在TextView中插入图片,我们一般是使用ImageSpan,但是在使用过程中,发现当TextView中一行未满时自动换行(这种情况一般是发生在中英文混排),插入在首部的ImageSpan不显示了,如下图: 原本在首部会有一个置顶的图标,但是由于换行导致ImageSpan不显示了。这里的解决方法是换了一种实现方式,使用Html.fromHtml的ImageGetter/** * 获取图原创 2016-01-22 11:46:15 · 6734 阅读 · 4 评论 -
Android Studio单元测试
概述Android中也提供了一套测试框架,项目中主要用到的是AndroidTestCase类和ActivityInstrumentationTestCase2类,前者用于测试一些需要传入Context的工具类,后者用于测试一些自定义View等与界面相关的。虽然单元测试可以免去运行整个APP,但还是需要运行在模拟器或测试机器上,这里使用Genymotion模拟器。例子测试框架中提供了一个方法asser原创 2015-08-12 17:31:05 · 2394 阅读 · 0 评论 -
Android TextView 如何判断是否已经省略
我们知道,要使TextView单行显示,如果超出的话用“…”显示,只要设置android:ellipsize="end"android:singleLine="true"或者多行显示,超出的部分使用“…”显示,那么,设置如下android:lines="2"android:ellipsize="end"那么问题是,我们怎么知道TextView已经省略了内容呢? TextView t原创 2015-08-25 18:44:40 · 9749 阅读 · 0 评论 -
Android DEX自动拆包及动态加载简介
概述作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生成的apk在android 2.3或之前的机器上无法安装,提示INSTALL_FAILED_DEXOPT 方法数量过多,编译时出错,提示:Conversion to Dalvik format fail转载 2015-07-29 10:01:27 · 1977 阅读 · 0 评论 -
Android Studio-1.2版本使用教程
转自http://licheetec.com/2015/05/02/android-studio-settings/ 这两天Google更新了Android Studio 1.2正式版,新版本的设置界面大变面,设置条目较旧版本进行了归类,不像以前那样列表长长的了。趁着安装新版本的机会,把常用的设置记录一下,放到博客里面,以作备忘。Android Studio / Gradle学习资源在说设置之前,转载 2015-06-02 23:31:36 · 1495 阅读 · 0 评论 -
fresco如何配合PhotoView使用实现图片缩放
https://github.com/ongakuer/PhotoDraweeView原创 2016-01-25 10:38:26 · 4103 阅读 · 0 评论 -
EditText支持多行同时支持imeOptions设置
本文出自:http://blog.sina.com.cn/s/blog_97eedec40100wwjd.html问题描述:EditText一旦设置了多行显示,键盘总是显示Enter键。有时候我们只需要文本输入多行显示,Enter键任然需要支持imeOptions设置,比如显示完成键而不是回车换行。如这如何做呢?问题分析以及解决:我们知道,当EditText弹出输入法时,会调用方法(TextView转载 2016-02-16 18:59:03 · 2928 阅读 · 1 评论 -
android retrofit End of input at line 1 column 1 path
背景在使用retrofit作为项目的网络请求库时,接口定义如下:@GET(ACT_GET_NEW_STAFF)Call<TaskEn> reqGetNewStaff();@GET(ACT_GET_NEW_STAFF_MORE)Call<List<TaskEn>> reqGetNewStaffMore(@Query("index")int index, @Query("size")int size原创 2017-03-07 16:09:09 · 20584 阅读 · 3 评论 -
图文详解谷歌Android 7.0的20个新功能
导语:谷歌已正式对外发布Android 7.0 Nougat(牛轧糖)操作系统,它将会率先登陆Nexus设备,之后才会陆续登陆其他的智能手机。Android 7.0中包含一系列的新功能和改进,它们将会对Android系统的体验产生重大的影响,例如捆绑通知和改进的多任务处理等。下面,就让我们一起来看一下谷歌都在最新的移动操作系统中添加了哪些主要新功能: “白日梦”变成“屏幕保护程序”转载 2016-08-31 18:30:13 · 1794 阅读 · 0 评论 -
TextView ClickableSpan onClickListener点击事件冲突
需求是这样的:TextView是在一个ListView item里面,TextView的文本需要格式。当有‘@’或者‘网址’时,将它们的文本高亮并且点击时进行跳转,当点击在‘@’或者‘网址’之外的地方时,要响应LivtView的item click事件。TextView的高亮是使用ClickableSpan实现的。前提: LivtView的item click事件我是通过item布局的最外层Vie原创 2016-04-08 17:57:25 · 8068 阅读 · 3 评论 -
TabPageIndicator 分割线
在使用TabPageIndicator自定义样式时,样式如下<!-- 指示器样式主题 --> <style name="StyledIndicators" parent="@style/ActivityTheme"> <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item> <原创 2016-02-26 10:53:16 · 2053 阅读 · 0 评论 -
android使用ksoap2-android调用webservice时报java.io.EOFException错误
报错代码如下:java.io.EOFException at libcore.io.Streams.readAsciiLine(Streams.java:203)at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:547)at libcore.net.http.HttpEngine.readResponse原创 2014-11-11 16:30:28 · 4005 阅读 · 3 评论 -
Android Studio 添加第三方依赖后,控件属性不提示
首先,在添加了第三方依赖之后,clean下。如果属性还是不能提示,那么重启AS,然后再clean build下。记。原创 2016-02-24 11:58:29 · 3826 阅读 · 1 评论 -
fresco 两种判断图片是否已经缓存在SD卡上的方法
问题场景在使用fresco过程中,我们有这么种应用场景:在高清图片未缓存在硬盘时,显示的是缩略图(要服务器支持),当高清图片已缓存在硬盘时,显示高清图片。那么使用fresco如何判断一张图片是否已经缓存在硬盘上了呢?解决办法第一种方式:boolean isCacheInDisk = Fresco.getImagePipelineFactory().getMainDiskStorageCache(原创 2016-02-23 16:38:49 · 6454 阅读 · 2 评论 -
在android style.xml文件中使用自定义属性
直接使用属性名就行了 不用加命名空间了 代码如下:<?xml version="1.0" encoding="utf-8"?><resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="style_header_radius"> <item name="androi原创 2016-02-04 18:16:21 · 5717 阅读 · 0 评论 -
心形进度条
废话不多说,先上效果图: 这个进度就是模拟心形填充的过程实现原理是:首先将空心形图片绘制出来,然后根据进度大小再将实心的心形图片一部分一部分的绘制出来。也就是两张完全相同大小的空心图和圆心图重叠绘制,利用canvas的clipRect绘制实心部分,实现进度条效果。首先在res->values先新建一个文件atrrs.xml,然后定义两个属性<?xml version="1.0" encodin原创 2015-05-18 14:40:26 · 2558 阅读 · 0 评论 -
关于adapter布局中有Button控件时,导致ListView的onItemClick无法触发的问题
在Button控件的属性加上android:focusable=”false”即可原创 2015-05-21 11:37:57 · 1085 阅读 · 0 评论 -
Fragment 防止重复加载
/** * * 2014-8-28 下午4:39:34 * @param to * @TODO 片段跳转,避免重复加载 */ private void switchContent(Fragment to){ if(mCurrFragment!=to){ FragmentTransaction transaction=getSupportFragmentManage原创 2014-08-28 16:39:44 · 3853 阅读 · 2 评论 -
全局捕获异常,并输出到日志文件
如果你是一个独立开发者,或者并没有太多时间和原创 2014-09-09 14:57:11 · 4266 阅读 · 0 评论 -
开发中的日志管理类
有时候,我们在开发状态下,需要打印一些日志信息,而发布zhuang原创 2014-09-09 14:42:05 · 1306 阅读 · 0 评论 -
下载完点击“打开应用”后,按HOME键回到桌面,再次点击应用,没有回到之前的页面,而是打开新的应用
情景再现:在开发的时候,一般安装替换原来的应用,打开应用是不会fa原创 2014-09-18 10:34:53 · 8482 阅读 · 2 评论 -
BufferedReader的使用问题
今天在使用socke传数据的时候,将输入流封装到BufferedReaderli原创 2014-06-05 17:20:43 · 1567 阅读 · 0 评论 -
横竖屏切换问题(不使用onConfigurationChanged)
有这样个需求:要求父Activity横屏(或竖屏),但在弹出的窗口(例如系统配置项)能根据用户的当前手机状态(横屏或者竖屏)进行横竖屏切换方案1:使用Dialog样式的Activity进行弹窗,然后在子窗口使用onConfigurationChanged进行判断横竖屏。这个方案的问题在于:当你根据用户手机的当前状态(横屏或者竖屏)对弹出的窗口进行横竖屏切换时,你会发现父Activity(已强制原创 2014-03-05 12:23:41 · 2587 阅读 · 0 评论 -
项目中导入ActionBar的android-support-v7-appcompat.jar包
在Android低版本中要使用ActionBar就要导入android-support-v7-appcompat.jar包,但是用以往的方法把android-support-v7-appcompat.jar包复制到libs文件夹下发现在AndroidManifest.xml添加theme时报错,原因在于还要使用到其资源文件。解决办法:File->import,选择已有项目然后选原创 2014-01-02 15:11:54 · 20419 阅读 · 1 评论 -
关于百度地图的一个定位功能
今天开发使用到了百度地图,其中在用到地位功能的时候遇到个问题,并解决之。以此记录一下。问题1:百度地图默认中心点是北京天安门,而百度地图的定位功能是异步任务,所以,当你地图+定位功能一起用在同个Activity中时就会有个问题,就是每次地图的视角会先在北京天安门那,然后再移动到我们定位的位置.解决1:解决问题1的思路:先获取到定位点,然后再加载地图。先在一个Activity中获取到定位点,原创 2020-12-07 13:40:23 · 2359 阅读 · 0 评论 -
ListView+CheckBox解决复选框混乱的问题
public class ZHCG_ListViewBaseAdapter extends BaseAdapter{private List mDatas;private int mLayoutId;private String[] mFrom;private int[] mTo;private Context mContext;public boolean isVisible=false;//复原创 2014-08-29 16:03:31 · 1457 阅读 · 0 评论 -
自动轮播,类似字幕或图片自动滚动播放
功能:ListView没隔一段时间自动滚动一段距离,当滚动到底部时,又从头开始显示,类似于原始数据为0123,而滚动起来则是012301230123...一直重复显示,这样就达到了信息轮播的功能。本功能采用扩展ListView来实现的,public class AutoCircleScrollListview extends ListView implements OnScrollList原创 2014-10-25 15:51:02 · 2655 阅读 · 0 评论 -
一个简单的圆形图片实现
序言很多时候我们都需要使用到圆形的图像控件,比如头像之类的。如果是开发者自己设计界面的时候使用,取巧的方法就是让美工给你做一个圆形ICON,但很多时候是需要显示用户上传的图像,这时候做一个通用的圆形图像控件是有必要的,那如何实现呢?正文Android图像控件一般是使用ImageView,那么我们这个自定义CircleView的圆形图像控件就继承于该控件。import android.content.原创 2015-05-13 15:38:55 · 2337 阅读 · 0 评论 -
Paint PorterDuff及Xfermode详解
利用ProterBuff.Mode我们可以完成任意2D图像测操作, 比如涂鸦画板应用中的橡皮擦效果,绘制各种自定义的进度,等等很强大的效果,下面请看具体的介绍: 1. Xfermode: Xfermode有三个子类 : AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。 PixelXorXfermode 当覆盖已有的颜色时,转载 2015-05-13 14:14:43 · 1010 阅读 · 0 评论 -
在Android上测试异步任务——单元测试
Android中的测试(宽泛的定义)是一个单元测试集合的扩展。涉及初始化、关闭测试,包含setUp()和tearDown()操作,使用反射 的方式推断出不同的测试方式(从JUnit4开始我们就可以使用注释来指定的优先级和执行所有测试)。一个典型的测试结构如下:public class MyManagerTest extends ActivityTestCase { public MyMana原创 2015-05-04 17:55:57 · 2258 阅读 · 0 评论 -
Fragment的setUserVisibleHint方法实现懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?答案就在Fragment里的setUserVi转载 2015-03-14 11:39:11 · 1144 阅读 · 0 评论 -
如何让ScrollView充满整个屏幕
有时候,我们在写布局的时,在最外层会套一个ScrollView,以防止内容超出屏幕的时候可以滚动。但如果这时候,内容不足以覆盖整个屏幕时,ScrollView 的android:layout_height="match_parent"属性是无效的,它始终都是wrap_content,这时可以使用android:fillViewport="true"让它生效。原创 2015-02-12 15:47:51 · 5285 阅读 · 0 评论 -
android 画图paint之setXfermode
本文转自:http://blog.csdn.net/wm111/article/details/7299294setXfermode 设置两张图片相交时的模式 我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint; 而setXfermode就可以来解决这个问题转载 2015-01-19 16:19:50 · 979 阅读 · 0 评论 -
使用ViewPager时,发生内存溢出OOM问题
今天在制作应用某个功能的引导页时,使用了ViewPager进行页面切换,每个页面就放了一个ImageView,使用背景图来进行展示,由于多图(11张)的原因,导致了OOM问题,这里总结一下。 代码如下:public class GuideActivity extends Activity implements OnPageChangeListener{ private Vie原创 2014-12-19 14:07:48 · 7732 阅读 · 4 评论 -
android4.4以上版本获取图片的uri
android4.4以下的版本,一般获取手机本地图片的uri的方法是原创 2014-10-15 16:19:11 · 1173 阅读 · 1 评论 -
Android手机屏幕尺寸计算
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);Display display = wm.getDefaultDisplay();DisplayMetrics dm = new DisplayMetrics();if (Build.VERSION.SDK_INT >= Bui原创 2017-07-17 17:35:34 · 3642 阅读 · 0 评论