android基础
文章平均质量分 71
xlhb
不怕从零开始,就怕从不开始
展开
-
Gradle learn
首先,我们来看下一个最简单android build.gradle。build.gradle//设置脚本的运行环境 buildscript { //支持java 依赖库管理(maven/ivy),用于项目的依赖。 repositories { mavenCentral() } //依赖包原创 2016-05-09 17:39:59 · 1207 阅读 · 0 评论 -
点击按钮切换横竖屏
1.定义如下变量 private OrientationEventListener mOrientationListener; // 屏幕方向改变监听器 private boolean mIsLand = false; // 是否是横屏 private boolean mClick = false; // 是否点击 private boolean mClickLand原创 2016-04-13 18:32:51 · 1753 阅读 · 0 评论 -
Android WebView中获取网页的title
webview 获取 网页的title [java] view plain copyWebView mWebView = (WebView) findViewById(R.id.mwebview); mWebView.setWebViewClient(new WebViewClient() { @Overri转载 2016-04-12 16:31:32 · 2448 阅读 · 0 评论 -
Android加载图片导致内存溢出(Out of Memory异常)
Android在加载大背景图或者大量图片时,经常导致内存溢出(Out of Memory Error),本文根据我处理这些问题的经历及其它开发者的经验,整理解决方案如下(部分代码及文字出处无法考证):方案一、读取图片时注意方法的调用,适当压缩尽量不要使用 setImageBitmap或 setImageResource或 BitmapFactory.decodeResour原创 2016-04-08 15:49:15 · 382 阅读 · 0 评论 -
Android防止过快点击造成多次事件
public abstract class NoDoubleClickListener implements View.OnClickListener { public static final int MIN_CLICK_DELAY_TIME = 2500; private long lastClickTime = 0; @Override public vo原创 2016-03-31 16:44:23 · 384 阅读 · 0 评论 -
adb logcat命令查看 log
cmd命令行中使用adb logcat命令查看android系统和应用的log,dos窗口按ctrl+c中断输出log记录。logcat日志中的优先级/tag标记:android输出的每一条日志都有一个标记和优先级与其关联。优先级是下面的字符,顺序是从低到高:V — 明细 verbose(最低优先级)D — 调试 debugI — 信息 infoW — 警告原创 2016-03-31 16:40:10 · 713 阅读 · 0 评论 -
android跳到手机home键主界面
android跳到手机主界面Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //如果是服务里调用,必须加入new task标识 intent.addCategory(Intent.CATEGORY_HOME);startA原创 2016-03-29 17:11:48 · 654 阅读 · 0 评论 -
怎么设置viewpager在使用setCurrentItem的滑动速度
可以通过反射机制将Viewpager的滑动过渡时间设置为0,再调用一下setCurrent 之后再通过反射机制设置一下过渡时间为2秒具体实现方式:/** * ViewPager 滚动速度设置 * */public class ViewPagerScroller extends Scroller { priva原创 2016-03-29 14:06:13 · 1927 阅读 · 0 评论 -
Android SQLiteDatabase
SQLiteOpenHelper是SQLiteDatabse的一个帮助类,用来管理数据的创建和版本更新。一般的用法是定义一个类继承SQLiteOpenHelper,并实现两个回调方法,OnCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabse, int oldVersion, int newVersion)来创建和更新数据库,我利用数据库做了一个类似电话转载 2016-03-23 17:47:04 · 430 阅读 · 0 评论 -
常用正则表达式大全!
常用正则表达式大全!(例如:匹配中文、匹配html)匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以转载 2016-03-23 17:43:42 · 314 阅读 · 0 评论 -
异常捕获
由于Android设备各异,第三方定制的Android系统也非常多,我们不可能对所有的设备场景都进行测试,因而开发一款完全无bug的应用几乎是不可能的任务,那么当应用在用户的设备上Force Close时,我们是不是可以捕获这个错误,记录用户的设备信息,然后让用户选择是否反馈这些堆栈信息,通过这种bug反馈方式,我们可以有针对性地对bug进行修复。当我们的的应用由于运行时异常导致Force转载 2016-03-10 16:32:29 · 449 阅读 · 0 评论 -
UI设计师不可不知的安卓屏幕知识
1、了解几个概念(1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。(2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2转载 2016-02-23 12:20:04 · 416 阅读 · 0 评论 -
Android 屏幕的旋转 onConfigurationChanged方法
Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法 最近在做播放器的时候遇到一个问题,在屏幕方向改变之后需要切换播放器全屏/非全屏的时候,在重写了onConfigurationChanged方法并在manifest.xml配置文件中添加android:screenOrientati转载 2015-11-18 14:43:12 · 2029 阅读 · 0 评论 -
GridView加载图片混乱
if(!viewMap.containsKey(position) || viewMap.get(position) == null){ holder = new Holder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.host_grid_item, null); holder.image转载 2015-11-13 17:38:52 · 707 阅读 · 0 评论 -
android Listview,gridview局部刷新,部分刷新
众所周知Listview和Gridview的刷新界面的方式是调用adapter.notifyDataSetChanged()进行界面刷新。但是此方法有其弊端,他是将界面中的数据全部刷新一遍,不论数据有没有变化。如果listview加载了很多的数据(如:100条)在进行刷新时就会造成很大的系统开销如何像qq空间个人动态那样点赞只刷新一条呢:主要原理:对listview转载 2015-09-15 17:53:55 · 550 阅读 · 0 评论 -
Activity的task相关
基础总结篇之三:Activity的task相关内容上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下。task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity转载 2015-01-21 00:13:42 · 260 阅读 · 0 评论 -
Activity的四种launchMode
Activity的四种launchMode、launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就转载 2015-01-21 00:12:47 · 319 阅读 · 0 评论 -
SQLite数据库简介
SQLite数据库简介大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作。SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。SQLite由以下几个部分组成:SQL编译器、内核、后端以及附件。SQLite通过利用虚拟机和虚拟数据库引擎(转载 2015-01-21 00:11:18 · 355 阅读 · 0 评论 -
Notification使用 基础应用
Notification使用详解之一:基础应用在消息通知时,我们经常用到两个组件Toast和Notification。特别是重要的和需要长时间显示的信息,用Notification就最合适不过了。当有消息通知时,状态栏会显示通知的图标和文字,通过下拉状态栏,就可以看到通知信息了,Android这一创新性的UI组件赢得了用户的一致好评,就连苹果也开始模仿了。今天我们就结合实例,探讨一下N转载 2015-01-21 00:10:36 · 331 阅读 · 0 评论 -
Notification使用 由后台服务向Activity发送进度信息
上次讲到了如何在Activity中监听后台服务的进度信息,实现的方式是让Activity与后台服务绑定,通过中间对象Binder的实例操作后台服务。从效果上来讲,这种方式是可行的,不过这种实现有个缺点,那就是Activity的任务太重了,为了监听服务的状态,我们不得不绑定服务,然后还需不断地定时的获取最新的进度,我们为何不换一下形式呢,让Service主动将进度发送给Activity,我们在Act转载 2015-01-21 00:00:41 · 359 阅读 · 0 评论 -
WebView的使用
WebView是Android中一个非常实用的组件,它和Safai、Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数据的方式便捷地展现软件的界面。使用WebView开发软件有一下几个优点:1.可以打开远程URL页面,也可以加载本地HTML数据;2.可以无缝的在java和javascript之间进行交互操作;3.高度的定制性,可根据开发者的需要进行多样转载 2015-01-20 23:57:40 · 768 阅读 · 0 评论 -
AsyncTask的使用
在Android中实现异步任务机制有两种方式,Handler和AsyncTask。Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。关于Handler的相关知识,前面也有所介绍,不清楚的朋友们可以参照一下。转载 2015-01-20 23:51:16 · 375 阅读 · 0 评论 -
BroadcastReceiver应用详解
今天我们来讲一下Android中BroadcastReceiver的相关知识。BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播。在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和转载 2015-01-20 23:48:10 · 410 阅读 · 0 评论 -
Activity生命周期
熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实android中的Activity运行机制跟servlet有些相似之处,Android系统相当于servlet容器,Activity相当于一个servlet,我们的Activity处在这个容器中,一切创建实例、初始化、销毁实例转载 2015-01-20 23:42:52 · 610 阅读 · 0 评论 -
Notification使用 通过服务更新进度通知&在Activity中监听服务进度
实现一个可更新的进度通知在实际应用中,我们一般会将上传、下载等比较耗时的后台任务以服务的形式运行,更新进度通知也是交由后台服务来完成的。 不过有的时候,除了在通知里面显示进度信息,我们也要在Activity中显示当前进度,很多下载系统都有这样的功能,例如Android自带浏览器的下载系统、QQ浏览器的下载系统等等。那么如何实现这一功能呢?实现方式有很多,我们今天先来介绍其中的一种:在Act转载 2015-01-21 00:13:42 · 782 阅读 · 0 评论 -
Android中SQLite应用详解
现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们为移动设备开发应用程序时,也许就要使用到SQLite来存储我们大量的数据,所以我们就需要掌握移动设备上的SQLite开发技巧。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取。下面就向大家介绍一下SQLite常用的操作方法,为了方便转载 2015-01-20 23:50:14 · 382 阅读 · 0 评论 -
android命名规范
刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间。如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法转载 2015-06-12 10:24:55 · 469 阅读 · 0 评论 -
[Android] ImageView.ScaleType设置图解
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。设置的方式包括:1. 在layout xml中定义android:scaleType="CENTER"2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);转载 2015-05-22 16:13:22 · 360 阅读 · 0 评论 -
Android将日志信息自动发送到指定的邮箱中 邮件的内容以附件形式发送
一、记录android项目中的异常日志类package cn.yw.exception;import java.io.File;import java.io.FileOutputStream;import java.lang.Thread.UncaughtExceptionHandler;import android.content.Context;import andr转载 2015-05-21 17:23:07 · 944 阅读 · 0 评论 -
android读写cookie的方法
做了一个android网络应用,要求用自己实现的webview去访问web网站,并且在远程登录成功之后把cookie写入到手机,保留用作以后的自动登录。找了好多资料。发觉读取cookies倒还用的很普遍,可是通过程序写cookie却没有太多资料。先来看一下如何读取cookie吧:try { DefaultHttpClient http转载 2015-05-03 20:39:45 · 788 阅读 · 0 评论 -
android 持久化保存cookie
在解析网页信息的时候,需要登录后才能访问,所以使用httpclient模拟登录,然后把cookie保存下来,以供下一次访问使用,这时就需要持久化cookie中的内容。一、请求网络获取cookie先看一下下面的代码:[java] view plaincopyprint?"font-size:14px;">"white-space转载 2015-05-03 20:37:38 · 558 阅读 · 0 评论 -
Android中处理崩溃异常
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开转载 2015-03-11 16:00:15 · 447 阅读 · 0 评论 -
回调机制
以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack callba转载 2015-02-02 15:48:55 · 356 阅读 · 0 评论 -
Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
今天这篇文章主要分析的是Android的事件分发机制,采用例子加源码的方式让大家深刻的理解Android事件分发的具体情况,虽然网上很多Android的事件分发的文章,有些还写的不错,但是我还是决定写这篇文章,用我自己的思维方式来帮助大家理解Android事件分发,Android事件分发到底有多重要呢?相信很多Android开发者都明白吧,这个我就不介绍了,我也写了很多篇文章里面涉及到Androi转载 2015-02-06 14:06:04 · 600 阅读 · 0 评论 -
Android 那些你所不知道的Bitmap对象详解
我们知道Android系统分配给每个应用程序的内存是有限的,Bitmap作为消耗内存大户,我们对Bitmap的管理稍有不当就可能引发OutOfMemoryError,而Bitmap对象在不同的Android版本中存在一些差异,今天就给大家介绍下这些差异,并提供一些在使用Bitmap的需要注意的地方。在Android2.3.3(API 10)及之前的版本中,Bitmap对象与其像素数据是分开转载 2015-02-06 14:03:23 · 484 阅读 · 0 评论 -
Android <uses-sdk> 和 target 分析
1. 概要 用来描述该应用程序可以运行的最小和最大API级别,以及应用程序开发者设计期望运行的平台版本。通过在manifest清单文件中添加该属性,我们可以更好的控制应用在不同android 系统版本上的安装和兼容性体验问题。转载 2015-01-30 15:59:23 · 443 阅读 · 0 评论 -
Android设置虚线、圆角、渐变
有图又真相,先上图再说。点击效果:设置虚线:<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <stroke android:dashGap="3dp" android:转载 2015-01-30 14:48:46 · 379 阅读 · 0 评论 -
Android 属性动画(Property Animation) 完全解析 (下)
Android 属性动画(Property Animation) 完全解析 (下)转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38092093上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,V转载 2015-01-28 14:17:12 · 576 阅读 · 0 评论 -
Android 属性动画(Property Animation) 完全解析 (上)
Android 属性动画(Property Animation) 完全解析 (上)转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/380674751、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View转载 2015-01-28 14:16:21 · 616 阅读 · 0 评论 -
ViewGroup学习之绘制过程
Android UI界面由以下树形结构组成, 从图中可以看出, UI界面是有View与ViewGroup两大类控件组成,在下面树形图中不管是View还是ViewGroup都是从android.view.View中派生, 而ViewGroup作为容器, 它可以装载和管理其下的一些列由android.view.View派生出来的元素(View和ViewGroup):转载 2015-01-27 11:31:08 · 370 阅读 · 0 评论