自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 mac下android adb环境变量配置

使用adb时,如果提示:-bash:adb:command not found,则可能是adb没有配置环境变量。1.进入终端2.进入当前用户的home目录:echo $HOME3.创建.bash_profile文件:touch .bash_profile4.打开该文件 open -e .bash_profile5.修改文件并保存  export PATH=${PAT

2016-04-13 18:05:12 533

原创 activity支持滑动退出

满足以下条件则认为用户是横向滑动退出:横向滑动距离 > 某一特定值,纵向滑动距离 只需要重写activity中的分发事件dispatchEventTouch(),判断滑动的距离。public class BaseActivity extends Activity{ String TAG = "BaseActivity"; public int wid

2016-02-16 11:05:52 588

原创 AS不能发布release版本的解决方案

在build.gradle中加入以下代码:lintOptions {        abortOnError false        checkReleaseBuilds false        // 防止在发布的时候出现因MissingTranslation导致Build Failed!        disable 'MissingTranslation'    }

2016-02-01 17:00:36 1340

转载 给listview设置分割线与边界的距离

ListView可通过配置 android:dividerlineandroid:dividerHeight来实现分割listview中item的效果,如图:如果想跟上图一样实现这种有设计的分割线样式的时候可以使用下面的方法,这个方法也是参照StackOverFlow解决方案上的方法来实现。创建分割线的布局文件:list_item_divid

2016-01-18 11:49:10 4027

转载 屏幕监听

在移动端app层监听屏幕的灭亮状态:package com.xxx.xxx.Tools;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import and

2016-01-04 16:41:29 465

原创 自定义可移动view

import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import and

2015-10-27 18:28:19 445

原创 根据Item数动态设定ListView高度

//此方法在setAdapter之后调用public static void setListViewHeightBasedOnChildren(ListView listView) {    ListAdapter listAdapter = listView.getAdapter();    if (listAdapter == null) {     return;

2015-10-10 18:20:07 1530

原创 Android的Intent.FLAG_ACTIVITY_CLEAR_TOP无效

今天写代码遇到了一个问题:当 B - A - B 跳转的时候,使用Intent的FLAG_ACTIVITY_CLEAR_TOP会让第一个B和第二个A,destory掉,但是当B - A - C跳转的时候不会调用B和A的destory。查看API文档才发现原因,所以这里记录一下避免下次忘记了:public static final int FLAG_ACTIVITY_

2015-09-21 14:39:56 6085

原创 Android shape解析

xmlns:android="http://schemas.android.com/apk/res/android"        android:shape=["rectangle" | "oval" | "line" | "ring"] >                    android:radius="integer"            android:topLef

2015-04-14 16:25:57 533

转载 Android 中自定义View的应用.

首先新建一个Android 工程 命名为ViewDemo .然后自定义一个View 类,命名为MyView(extends View) .代码如下:package com.android.tutor; import android.content.Context; import android.graphics.Canvas; import android.graphics

2015-01-29 11:29:15 436

转载 Android中自定义属性(attrs.xml,TypedArray)的使用

该实例是在自定义View上使用自定义属性的。MyView.java package com.adnroid.test; import com.adnroid.test.R; import android.content.Context; import android.content.res.TypedArray; import android

2015-01-29 11:26:45 394

转载 Android中自定义属性(attrs.xml,TypedArray)的使用

该实例是在自定义View上使用自定义属性的。MyView.java package com.adnroid.test; import com.adnroid.test.R; import android.content.Context; import android.content.res.TypedArray; import android

2015-01-29 11:24:51 464

转载 attrs.xml文件中属性类型format值的格式

"reference" //引用"color" //颜色"boolean" //布尔值"dimension" //尺寸值"float" //浮点值"integer" //整型值"string" //字符串"fraction" //百分数,比如200%枚举型的格式: XML文件中使用:android:orientation = "vertical"

2015-01-29 11:14:42 958

转载 Android异步处理三:Handler+Looper+MessageQueue深入详解

在《Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面》中,我们讲到使用Thread+Handler的方式来实现界面的更新,其实是在非UI线程发送消息到UI线程,通知UI线程进行界面更新,这一篇我们将深入学习Android线程间通讯的实现原理。概述:Android使用消息机制实现线程间的通信,线程通过Looper建立自己的消息循环,MessageQueue

2015-01-28 17:36:04 483

转载 Android异步处理二:使用AsyncTask异步更新UI界面

在《Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面》中,我们使用Thread+Handler的方式实现了异步更新UI界面,这一篇中,我们介绍一种更为简洁的实现方式:使用AsyncTask异步更新UI界面。概述: AsyncTask是在Android SDK 1.5之后推出的一个方便编写后台线程与UI线程交互的辅助类。AsyncTask的内部实现是一个线

2015-01-28 17:04:22 435

转载 Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException:only the

2015-01-28 16:58:45 456

转载 MediaPlayer中创建AudioTrack的过程

MediaPlayer中创建AudioTrack的过程使用MediaPlayer播放音视频时,会创建AudioTrack对象用于播放音频数据。下面就来看看MediaPlayer创建AudioTrack的过程:1.创建AudioTrack对象MediaPlayer类中并没有直接创建AudioTrack,而是把创建AudioTrack对象的操作放在了MediaPlayerServi

2014-12-11 17:39:31 1091

转载 MediaPlayer和AudioTrack播放Audio的区别与联系

播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。而AudioTrack只能播放已经解码的PCM流,如果是文

2014-12-11 17:37:09 644

转载 stagefright框架解读(—)音视频Playback流程

从Android 2.0,Google引进了Stagefright,并在android2.3时用Stagefright在Android中是以shared library的形式存在(libstagefright.so),其中AwesomePlayer可用來播放video/audio。AwesomePlayer提供許多API,可以让上层的应用用程式(Java/JNI)來呼叫,我在这里简单说明一下vid

2014-12-03 20:25:08 734

转载 android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1

android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1android 中数据库处理,特别是使用cursor时,注意初始位置,好像是从下标为-1的地方开始的,也就是说一次查询中,返回给cursor查询结果时,不能够马上从cursor中提取值。比如,下面的代码会返回错误,andr

2014-08-21 13:52:51 1444

转载 浅谈android的selector背景选择器

关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下android的selector的用法。首先android的selector是在drawable/xxx.xml中配置的。先看一下listview中的状态:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据List

2014-08-16 11:30:40 359

转载 ANR分析

一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:Servi

2014-07-24 16:02:53 521

转载 Android中XLIFF标签的应用

今天看了一个google的demo,发现部分资源字符串在/res/values/string.xml中包含有类似xliff的节点,刚才查了一下,Xliff是XML Localization Interchange File Format 的缩写,中文名为XML本地化数据交换格式。对于在Android的资源字符串中,可能会有类似下面的 %1$s 写法,这里,id我们可以随便定义,后面的%1$

2014-07-23 17:43:33 671

转载 Adapter深入理解与优化

一般是针对包含多个元素的View,如ListView,GridView,ExpandableListview,的时候我们是给其设置一个Adapter。Adapter是与View之间提供数据的桥梁,也是提供每个Item的视图桥梁。以ListView为例,其工作原理为:● ListView针对List中每个item, adapter都会调用一个getView的方法获得布局视图●

2014-07-11 10:38:01 706

转载 apn相关

APN概述:APN 的类型分为web(internet),wap,mms三种类型,用于手机中上网时数据交换的接入点名称配置与显示。APN配置的时候,出现的type的值主要有:default,mms,supl,dun。Default常用于一般的数据业务,主要有internet,wap,web.mms类型用于彩信接收发送的业务;supl用于gprs上网;dun用于wifi等上网类型。

2014-06-24 09:57:49 2655

转载 圆角和圆形image

直接继承imageView:

2014-06-19 17:14:33 533

转载 android机器获取当前语言

判断android设备当前设置的为什么语言使用Locale(java.util.Locale)类中getLanguage()方法;一般获取到的比如中文为zh,英文为en,日文为ko;要获得具体的类别使用toString()方法。比如繁体为zh_TW,简体为zh_CN。英文中有en_GB;日文有ko_KR。 代码如下:Locale.getDefault().getLang

2014-06-17 15:16:24 1360

转载 Android音量调节的实现(RingtoneManager和RingerVolumePreference)

Android音量调节的实现,分两种情况说明,一种是在settings的音量设置界面,按下侧键进行调节;另一种是在非settings界面,按下侧键进行音量调节。这两种调节方式的实现不一样,分别操作的是两个不同的音量SeekBar。下面,分别进行分析:一.  在settings的音量设置界面,按下侧键进行调节:在settings的音量设置界面,按下侧键回有音量的调节,同时,会播放

2014-06-09 15:44:07 1712

转载 Android的framework层音量控制原理分析

Android.media.AudioManager中包含了对android.media.AudioService的跨进程AIDL调用封装。正常处理过程:1.调整音量是通过AudioManager间接调用AudioService.adjustStreamVolume方法来完成逻辑处理;2.AudioService调用VolumePanel画出音量调整界面,并发送音量变动广播消息,3

2014-06-09 15:42:35 1586

转载 AsyncQueryHandler的使用

转自:http://xwangly.iteye.com/blog/1098728每天进步一点点之AsyncQueryHandler学习AsyncQueryHandler:异步的查询操作帮助类,其实它同样可以处理增删改1。AsyncQueryHandler的作用查询其API便可知,它担供:startInsertstartDeletest

2014-06-07 16:24:18 450

转载 Android开发:关于Android Settings中的八个问题

本问将回答以下八个问题,如有错误,敬请批评指正,不胜感激!(注:本文中的Settings解析基于android4.0+)问题一、Settings的主界面是怎么实现的?问题二、为什么使用hierarchyviewer 时Settings中的很多界面显示的都是SubSettings?问题三、hierarchyviewer 中显示SubSetting时如何确定我进入的是哪个fragment?

2014-05-19 10:22:12 1012

转载 编译错误:commands commence before first target

makefile时常遇到这样的问题,汇总网上的原因如下:1. 上一行换行符号 \ 后面有空格2. 本行前面的空白有非法字符1)Makefile可能是以命令行开始:以[Tab]字符开始,但不是一个合法的命令行(例如,一个变量的赋值)。命令行必须和规则一一对应。 2)产生第二种的错误的原因可能是一行的第一个非空字符

2014-04-12 16:51:47 1152

转载 Android 相对布局

RelativeLayout布局 android:layout_marginTop="25dip" //顶部距离 android:gravity="left" //空间布局位置 android:layout_marginLeft="15dip //距离左边距 // 相对于给定ID控件 android:layout_above 将该控件的底部置于给定ID的控件之上; 

2014-03-19 15:59:02 608

原创 UTF8和gbk编码转换(二)

Linux下:linux下并没有前面提到的两个函数,需要使用函数mbstowcs和wcstombs。mbstowcs将多字节编码转为宽字节编码;wcstombs将宽字节编码转换为多字节编码。#include #include #include #include #include int gbk2utf8(char *utfStr,char *srcStr

2014-02-21 19:49:07 976

原创 UTF8和gbk编码转换(一)

在项目中,经常遇到将gbk编码与utf8编码进行转换的情况。如在linux系统中对windows下文件进行操作,或是windows下对Linux文件操作。这是因为在Windows下的默认字符编码格式是GBK(GB2312),而Linux下是UTF-8。UTF-8:Unicode Transformation Format-8bit,是用以解决国际上字符的一种多字节编码,它对英文使用8位

2014-02-21 19:19:07 2405

原创 Ubuntu下编写C代码

建议使用gcc,linux下也有像vc的可视化开发工具如:Qt,Eclipse,Codeblock,一般gcc比较方便,属于命令行,可以编译C,C++,具体是:第一步:打开终端,随便进入一个文件夹用于存放你编写的程序       cd /home/usr/workspace       vi Hello.c       接着你就会看到vi编辑器,按I开始输入,接着输

2014-02-19 15:41:22 1748

原创 android模拟back键

方法一:public void onBack(){  new Thread(){    public void run() {    try{      Instrumentation inst = new Instrumentation();      inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);    }catch (

2014-01-24 10:38:21 734

转载 AlertDialog实例

AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。使用AlertDialog.Builder创建对话框需要了解以下几个方法:setTitle :为对话框设置标题setIco

2014-01-24 10:35:25 765

原创 byte转int出现负数的情况

问题描述:在文件流读取十六进制文件时,经常需要将某些字节读出来解析成表示大小的int数据,在此转化过程中可能会出现负数,好的解决方法是将byte[i]和0xFF进行与运算,因为byte为8bit,而int是32bit,故而在转化前需将高24位置零,这样就不会出现补码导致的转换错误。在剖析该问题前请看如下代码public static String bytes2HexString

2014-01-08 20:54:44 11854 1

转载 MP3文件格式解析

1, MP3简介MP3是今天一种常见的音乐格式,但恐怕除了工作要求之外,有兴趣对此进行研究的人恐怕不多。所以,当我打算做MP3解码方面的工作时,在找资料时也颇费了一番周折,同时也觉得很有趣。所以想在这里分享一下自己的心得,做一个总结性的介绍。这样有兴趣的同志也可以对此有一个大概了解,尽快入门。MP3是MPEG-1 Audio Layer 3的简称,是当今比较流行的一种数字音

2014-01-06 16:24:14 679

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除