常用的技术和技巧
文章平均质量分 68
sadsadsadsadsazcAS
这个作者很懒,什么都没留下…
展开
-
Error inflating class android.support.v4.view.ViewPager 问题的解决方法
今天在使用ViewPager的时候遇到这样的一个错误:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dystu.viewpagerdemo/com.dystu.viewpagerdemo.MainActivity}: android.view.InflateException: Binary XM原创 2015-01-05 21:50:01 · 3094 阅读 · 1 评论 -
37SectionIndexer的使用
在做通讯录联系人列表的时候,需要有字幕索引,选择SectionIndexer这个接口,在Adapter中实现这个接口。API中对这个接口的说明如下:Interface that may implemented on Adapters to enable fast scrolling between sections of anAbsListView. A section is a原创 2014-12-31 15:50:34 · 550 阅读 · 0 评论 -
97去掉ScrollVIew拉到尽头时再拉的阴影效果
一、删除android ScrollView边界阴影方法方法 1) 在xml中添加:android:fadingEdge=”none” 2) 代码中添加:ScrollView.setHorizontalFadingEdgeEnabled(false); 二、删除ScrollView拉到尽头(顶部、底部),然后继续拉出现的阴影效果 适用于2.3及以上的 否则不用设置原创 2014-12-31 21:00:30 · 663 阅读 · 0 评论 -
95横竖屏切换导致Activity生命周期变化对杀毒的影响
当屏幕横竖屏切换的时候,Activity会被销毁,重新创建Activity,当用户正在杀毒的时候,横竖屏切换了,那么会重新去杀毒,这样用户体验不好,解决的办法很简单,只要在清单文件下的该Activity的配置中增加下面的属性:android:configChanges="orientation|keyboardHidden|screenSize"指定屏幕的方向,软键盘,屏幕的大小不会影响A原创 2014-12-31 20:45:47 · 506 阅读 · 0 评论 -
94手机杀毒的逻辑实现
最终实现的效果如下:扫描完毕之后:第一步:首先获取每个文件的(apk文件)的MD5值:/** * 获取文件的MD5值 * * @param path * 文件的全路径名称 * @return */ private String getFileMd5(String path) { File file = new Fi原创 2014-12-31 20:28:34 · 710 阅读 · 0 评论 -
29Android数据过滤机制
1.何谓Android的过滤机制? Android对数据的处理是分层的,从上到下,可以分为:数据层、提供层、Cursor层、适配层、显示层。每个层次通过一定的机制,可以使数据发生变化时能够上下通知。如下: 显示层(ListView,GridView,AutoCompleteTextView等) 适配层(Adpater) Cursor层(Cur原创 2014-12-30 15:20:28 · 1084 阅读 · 0 评论 -
有关ListView优化机制及滑动时数据错乱有关问题的讨论
有关ListView优化机制及滑动时数据错乱问题的讨论 该篇内容主要是记录我在实际开发中遇到的ListView滑动时数据错乱的几种情况,以及解决方法。在进行ListView滑动时数据错乱问题讨论之前会对ListView所谓的进行说明。文章末尾分享了几篇文章,增强对ListView使用以及Adapter优化的理解,其中有对adapter优化方法的耗时测试的介绍。Getting原创 2014-12-13 08:42:47 · 715 阅读 · 0 评论 -
Google官方demo(displayingBitmaps)
在这个demo里面,他使用的是GridView(在Fragment中)来显示图片的缩略图,当点击缩略图的时候,显示大图,使用了DiskLruCache和AsyncTask。原创 2015-01-19 10:12:11 · 1226 阅读 · 0 评论 -
19Controlling Your App’s Volume and Playback
A good user experience is a predictable one. If your app plays media it’s important that your users can control the volume of your app using the hardware or software volume controls of their device, b原创 2014-12-29 10:18:29 · 550 阅读 · 0 评论 -
78 使用getIdentifier()获取资源Id
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID。主要有两种方法:(1)方式一Resources resources = context.getResources();int indentify = resources.getIdentifier(org.loveandroid.androidtest:drawable/icon",null,null);i原创 2015-01-15 17:01:06 · 597 阅读 · 0 评论 -
18Getting a Result from an Activity
本篇主要介绍startActivityForResult()方法和onActivityResult()方法。其中startActivityForResult()接受两个参数,一个是请求码,一个是Intent;onActivityResult()接受三个参数,一个是请求码,一个是返回的结果码,一个是Intent;Starting another activity doesn'原创 2014-12-27 09:09:01 · 590 阅读 · 0 评论 -
32Spannable的使用(Android显示html带图片 (表情开发))
Android中显示html文件要用Html.fromHtml(...)处理过的返回值,返回值可以成为setText()的参数。只显示带文本的html可以用下面的方法处理html文件。public static Spanned fromHtml (String source) 显示带图片的html要用下面的方法处理html文件。public static Spanned from原创 2014-12-31 08:36:55 · 857 阅读 · 0 评论 -
38SparseIntArray的使用
在通讯录联系人列表界面,使用SparseIntArray来定义positionOfSection,和sectionOfPosition,为什么这样定义呢?看下SparseIntArray的API说明:SparseIntArrays map integers to integers. Unlike a normal array of integers, there can be gaps原创 2014-12-31 16:11:56 · 840 阅读 · 0 评论 -
eclipse下如何关联android-support-v4.jar源码
一、首先导入jar包如果android-support-v4.jar包在libs目录下,先将它移除。然后点选中项目右键 --->properties-->javabuildpath-->Libraries-->Add External JARs。选择你sdk目录下的\extras\android\compatibility\v4\android-support-v4.jar.点 击ok。这原创 2015-01-05 20:55:05 · 867 阅读 · 0 评论 -
Android知识点(两种单例)
1.什么是状态机?项目中什么时候用到状态机,举例说明。(了解)--->关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态, 状态机停止。群里一哥们的解释原创 2015-01-05 10:57:46 · 578 阅读 · 0 评论 -
Android组件设计思想
内容来自罗升阳的PPT从四个方面说起:组件化背景组件化设计组件化支持一、组件化背景从PC客户端应用程序说起:开发者角度复杂,同时兼顾UI、交互和业务逻辑运行载体是进程进程只有一个入口点—main使用者角度流畅的UI、友好的交互、正确的结果不知进程是何物//===========================PC客户端应用程序原创 2015-01-05 14:09:37 · 1181 阅读 · 0 评论 -
42android:duplicateParentState="true"
API给的解释是:When this attribute is set to true, the view gets its drawable state (focused, pressed, etc.) from its direct parent rather than from itself. [boolean]。当这个属性设置为true的时候,view对象从他的直接父类获取他的dra原创 2015-01-04 14:00:10 · 823 阅读 · 0 评论 -
45Fragment的onHiddenChanged方法
API的解释为:参见:public final boolean isHidden()如果该Fragment对象已经被隐藏,那么它返回true。默认情况下,Fragment是被显示的。能够用onHiddenChanged(boolean)回调方法获取该Fragment对象状态的改变,要注意的是隐藏状态与其他状态是正交的---也就是说,要把该Fragment对象显示给用户,原创 2015-01-04 14:46:21 · 8837 阅读 · 0 评论 -
41右侧字母索引栏的编写
实现的效果图:通过自定义View,然后在xml文件中引用可以达到需求。public SiderBar(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; init(); } private String[] sections = new Stri原创 2015-01-04 11:31:53 · 764 阅读 · 0 评论 -
高效显示Bitmap1--->高效加载大图
当我们使用下面的代码加载内存中的一张图片时,显示了下面的错误:package com.dystu.bitmapdemo;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import and原创 2015-01-21 10:17:30 · 734 阅读 · 0 评论 -
98利用反射清理应用程序的缓存以及清理所有应用程序的缓存
当使用缓存得到单个应用程序的缓存之后,查看源码,得到清除缓存的方法,同样,这里也需要使用反射区清理,当完成后,提示我们需要添加权限:但是当我们保存的时候,发现这条权限居然报错了,意思是:这个权限是授权给系统程序的,所以我们的程序不能使用清楚缓存的功能,当单击清除缓存的功能的时候,弹出到设置界面的清楚缓存的功能。清理全部的缓存的思路是:利用了系统的BUG,当系统内存不足的时候,系统会原创 2015-01-01 22:27:16 · 728 阅读 · 0 评论 -
96利用反射获取缓存和应用程序的大小信息
getCacheDir()方法得到缓存的位置。观察系统设置源码看下他的原理:打开设置的源码:得到:继续:得到:继续:得到:继续:点一下看到其是类的成员变量,ctrl+k:得到:打开:发现字符串的值居然是:正在计算...这不是想要的,继续找:原创 2014-12-31 20:51:12 · 655 阅读 · 0 评论 -
31会话界面的适配器中的工具类---使用Spannable自定义TextView
Spannable是一个接口,其源码为:/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance原创 2014-12-31 08:22:16 · 642 阅读 · 0 评论 -
16Sending the User to Another App(隐式Intent意图)
One of Android's most important features is an app's ability to send the user to another app based on an "action" it would like to perform. For example, if your app has the address of a business that原创 2014-12-27 08:22:24 · 532 阅读 · 0 评论 -
android中string.xml中%1$s、%1$d等的用法
今天看源码的时候,在string.xml文件中遇到了这个: 实际中如下:原来是:Xliff,Xliff是XML Localization Interchange File Format 的缩写,中文名为XML本地化数据交换格式一、使用xliff的用法:标签介绍: 属性id可以随便命名 属性值举例说明%n$ms:代表输出的是字符原创 2014-12-26 16:56:22 · 1160 阅读 · 0 评论 -
01 调用系统相机拍照,裁剪图片
记录自己很傻的一件事:我新建了两个类,其中一个类是另一个类直接拷贝的(布局忘记改过来),所以按钮的点击事件一直报NPE(Null Pointer Exception)。弄了半天才看到!很重要的是加入权限,很多人因为没加入拍照权限而导致运行不能成功。[html] view plaincopyprint?uses-permissi原创 2014-12-10 10:36:27 · 618 阅读 · 0 评论 -
ListView+CheckBox实现隐藏部分CheckBox
实现的效果:例子是这个博文的:http://blog.csdn.net/chenfuduo_loveit/article/details/42519449在adapter中添加下面的代码即可: if (fruit.getName().equals("Apple")) { viewHolder.cb.setVisibility(View.INVISIBLE); }else原创 2015-01-08 11:30:20 · 1337 阅读 · 0 评论 -
ListView+CheckBox实现全选和反选
实现的效果图如下:(在《第一行代码的例子上加以修改的》),当点击全选的时候,效果如下:当只选中下面的几个:此时按下,反选,如图:首先是布局:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://s原创 2015-01-08 08:31:14 · 2221 阅读 · 0 评论 -
Intent传递数据的方式
方式一:使用putExtra,在MainActivity中传输数据,在SecondActivity中输出数据:package com.dystu.intentdemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;原创 2015-01-09 11:11:12 · 1928 阅读 · 0 评论 -
Service和Activity之间的通信
Service的启动方式有两种,一种是通过start方式,一种是通过bind方式,通过start方式启动服务后,启动服务的组件和服务便没有多大联系了。所以为了能和Service通信,只能通过bind的方式。下面分几步介绍下:(demo里面的Service提供一个下载的功能,然后在Activity中决定何时开始下载,以及随时查看下载进度)第一步:在Service类中创建一个内部类继承自Bin原创 2015-01-08 20:53:17 · 662 阅读 · 0 评论 -
Android数据库事务操作
Android中的SQLite可以很好的支持事务操作,所谓的事务,就是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全不执行,不能执行某些操作,而不执行其他操作。打个比方,银行的转账操作,A转给B1000块钱,则A的账户中要扣除1000块,B的账户中要增加1000块,这两个行为要么都执行,要么都不执行,不能只执行其中一个操作。使用Android的SQLite的事务也很简单,原创 2015-01-07 20:53:43 · 875 阅读 · 0 评论 -
android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed错误原因
情况1:你定义的字段为 not null而插入时对应的字段却没值。情况2:你定义的字段设定PRIMARY,而插入的值已经在表中存在。我的错误属于第一种:我在onCreate()方法中创建表的时候,指定了约束条件(not null),然后我在插入数据的时候,有字段为NULL,导致倒错。原创 2014-12-16 20:10:41 · 7213 阅读 · 0 评论 -
61自定义view--onMesure、MeasureSpec详解
转自:http://blog.csdn.net/mwj_88/article/details/41210373一、自定义view逻辑1、测量--onMesure():决定View的大小2、布局--onLayout():决定View在ViewGroup中的位置3、绘制--onDraw():如何绘制这个View第3步的onDraw系统已经封装的很好了,基本不用我们操心。现在讲讲第1转载 2015-01-07 15:12:13 · 677 阅读 · 0 评论 -
60BaseAdapter导致notifyDataSetChanged()无效的几个原因及处理方法
暂时只碰到这几个问题:一、ScrollView中嵌套ListView或GridView原因:两个的滚动监听冲突解决方法:重写ListView或GridViewpackage com.meritit.lottery.view; import android.content.Context; import android.util.AttributeSet原创 2015-01-07 15:04:00 · 748 阅读 · 0 评论 -
64ListView中item中有CheckBox带来的选择状态混乱的解决
如图:当选择第二个条目的时候,往下翻:看到下面有的居然自己勾上了:再网上翻,发现上面的有的也自己勾上了:第一次遇到这个问题(手机管家项目第一次遇到这个问题,这里是拿《第一行代码》复习了),感觉好奇怪,甚至感觉有点不可思议。但是静下来想想,不过是因为复用convertView带来的问题。解决方式:第一步:在bean中新增 一个fil原创 2015-01-07 18:10:34 · 1940 阅读 · 2 评论 -
63ScrollView嵌套ListView带来的问题以及解决方式
ScrollView嵌套ListView带来的问题的解决原创 2015-01-07 16:28:43 · 817 阅读 · 0 评论 -
Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.dy.fragmen
要注意的是fragment其实是有两个版本的,一个是import android.support.v4.app.Fragment;另外一个是import android.app.Fragment;这两个版本的fragment是不会兼容的。也就是说要不就全用fragment,要不就全用v4 fragment,不能混搭着用。在这里我强烈建议初学者用第二个原创 2014-12-19 09:56:09 · 2829 阅读 · 0 评论 -
Services
A Service is an application component that can perform long-running operations in the background and does not provide a user interface. Another application component can start a service and it will翻译 2015-01-09 20:30:39 · 551 阅读 · 0 评论 -
开源框架Android-Universal-Image-Loader
Android-Universal-Image-Loader的github地址为:https://github.com/nostra13/Android-Universal-Image-Loader 正如他的github上的主页上的介绍:Powerful and flexible library for loading, caching and displaying images on A原创 2014-12-26 14:30:13 · 859 阅读 · 0 评论 -
AndroidAnnotations开源框架
这段时间学习别人的源码,需要AndroidAnnotations这个开源的框架,学习下,他的地在:https://github.com/excilys/androidannotations文档的地址在:https://github.com/excilys/androidannotations/wiki 正如在github上他的主页上所说:Fast Android Development.原创 2014-12-26 14:11:58 · 1759 阅读 · 0 评论