android提升
张行之
闻道有先后,术业有专攻。
展开
-
捕获全局异常
自定义一个Applicationpublic class MyApplication extends Application implements UncaughtExceptionHandler { @Override public void onCreate() { super.onCreate();// 此方法为空实现--可以删除 T原创 2016-01-22 23:06:41 · 631 阅读 · 0 评论 -
监听输入法键盘的事件
布局文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-原创 2016-01-22 23:08:24 · 886 阅读 · 0 评论 -
aidl的简单使用
aidl–进程间的通信(就是2个app之间的通讯)app1–表示服务的提供者–例如支付包的支付方法,需要对外暴露,让其他app调用其功能创建一个AliPay.aidl文件–将java的后缀改为aidl interface AliPay { String pay(float menoy);}注意:aidl中是不能有修饰符的,否则报错在app1中的AliPayService 中public原创 2016-01-22 23:14:25 · 509 阅读 · 0 评论 -
Android 切换日夜间模式
在attrs.xml文件中配置属性 <attr name="mainBackground" format="color"/>在layout.xml文件中使用<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" androi原创 2016-01-25 22:08:17 · 1401 阅读 · 1 评论 -
Android activity属性设置大全
Android activity属性设置大全 android:allowTaskReparenting=[“true” | “false”] 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState=[“true” | “false”] 是否保留状态不变, 比如切换回home, 再从新打转载 2016-01-25 22:52:55 · 783 阅读 · 0 评论 -
闪动文字效果
自定义一个Viewpublic class MyView extends TextView { private int mViewdWidth; private TextPaint mPaint; private LinearGradient mLinearGradient; private Matrix matrix; private int mTransla原创 2016-01-27 22:37:52 · 470 阅读 · 0 评论 -
点击2次Back键退出程序
有2种方法,一种是通过handler发送消息,一种是通过点击2次按下Back键的事件间隔来判断,后退出程序。个人比较倾向handler的方式public class MainActivity extends Activity { private boolean isExit = false;// 定义一个标记 private long exitTime = -1;// 声明一个退出时间原创 2016-01-27 22:43:24 · 597 阅读 · 0 评论 -
AsyncTask的使用
public class MainActivity extends AppCompatActivity { private Button btn; private ProgressBar pb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save原创 2016-01-28 21:38:13 · 335 阅读 · 0 评论 -
单例Toast
public class SingleToastUtils { private static Toast toast; public static void getSingleToast(Context context, String text) { if (toast == null) { //创建一个空的吐司 toas原创 2016-01-28 21:47:39 · 871 阅读 · 0 评论 -
LruCache类
Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的数据来调整内存。他的主要原理在trimToSize方法中。需要了解两个主要的变量size和maxSiz转载 2016-01-28 22:36:34 · 506 阅读 · 0 评论 -
自定义SeekBar
SeekBar的样式修改<SeekBarandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:maxHeight="6dp"android:minHeight="6dp"android:progress="40"android:progressDraw原创 2016-02-18 10:42:16 · 644 阅读 · 0 评论 -
BatteryManager--获取电量
public class BatteryActivity extends AppCompatActivity implements View.OnClickListener { private Button btn_battery; private BatteryBoastcaseReceiver receiver; @Override protected void on原创 2016-02-18 13:21:32 · 1625 阅读 · 0 评论 -
Android View中getViewTreeObserver().addOnGlobalLayoutListener()
我们知道在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。所以现在需要使用getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或者高度。这是获得一个view的宽度和高度的方法之一。OnGlobalLayoutListener 是V转载 2016-02-18 16:28:53 · 855 阅读 · 0 评论 -
Notification&&自定义Notification
MainActivity的布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match原创 2016-02-20 23:02:47 · 383 阅读 · 0 评论 -
shape
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--shape命名空间 类型--> <!--android:shape="rectangle" 表示矩形-->原创 2016-02-21 10:58:22 · 655 阅读 · 0 评论 -
ViewPager伪无限次循环
在activity_main.xml中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="2原创 2016-03-20 15:01:52 · 557 阅读 · 0 评论 -
在Service中弹出一个窗体
在MainActivity中,点击按钮,开启serviceactivity_main.xml文件中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300dp" a原创 2016-03-20 17:47:50 · 1003 阅读 · 0 评论 -
在Service中弹出一个Dialog
在Service中public class MyService extends Service { private WindowManager windowManager; private WindowManager.LayoutParams params; private View view; private Button btn; private boole原创 2016-03-20 20:31:25 · 1528 阅读 · 0 评论 -
Android中JNI的使用之HelloWorld
1.配置JNI环境下载ndk版本 配置环境变量–>将ndk-build.cmd文件所在路径配置到path中2.创建一个android工程2.1 在MainActivity中创建一个本地方法package com.example.jni;import android.app.Activity;import android.os.Bundle;import android.view.View;i原创 2016-02-27 11:56:07 · 1097 阅读 · 0 评论 -
JNI用javah命令生成头文件
以下代码在Android中JNI的使用之HelloWorld的基础上操作Android中JNI的使用之HelloWorld2.4在工程的src目录下,在dos窗口使用javah命令 后面跟 MainActivity全路径(eg:com.example.jnitojavah.MainActivity),会在src目录下生成一个头文件(eg:com_example_jnitojavah_MainA原创 2016-02-27 14:07:02 · 18080 阅读 · 0 评论 -
JNI开发的常见错误&&Android.mk文件说明&& jni开发的简便流程
jni开发的常见错误[1]Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk 说明你的jni目录下需要一个Android.mk文件 [2]11-21 02:26:39.995: E/AndroidRuntime(434): Caused by: java.lang.UnsatisfiedLinkError:原创 2016-02-27 14:25:16 · 1042 阅读 · 0 评论 -
ListView之ViewHolder&下拉加载&item点击保存状态
在main_activity.xml文件中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:lay原创 2016-03-14 22:23:18 · 722 阅读 · 0 评论 -
LayoutAnimation动画
LayoutAnimation动画LayoutAnimation作用于ViewGroup,为ViewGroup指定一个动画,这样当它的子元素出场时,都会具有这种效果。实例: 1.在res目录下,新建一个anim目录,在anim目录下,创建一个anim_item.xml文件,文件内容:<set xmlns:android="http://schemas.android.com/apk/res/and原创 2016-04-24 21:26:33 · 613 阅读 · 0 评论 -
ValueAnimator的使用
ValueAnimator的使用activity_main.xml文件中<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android原创 2016-04-26 22:19:55 · 475 阅读 · 0 评论 -
ObjectAnimator的简单使用
ObjectAnimator的简单使用1.在activity_main.xml文件中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/t原创 2016-04-26 22:37:53 · 1239 阅读 · 0 评论 -
ImageView的src图片交换
activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="mat原创 2016-04-10 10:16:08 · 2358 阅读 · 0 评论 -
WebView重定向问题的解决方案
我们发现,当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办?经过我查阅文档,发现WebView有一个方法getHitTestResult();它的返回值是WebView.HitTestResult。HitTestResult是WebView的一个内部类,那么它有什么作用呢?我们在点击网页的链接时,都会有一个TYPE(类型),根据HitTestResult的TYPE(原创 2016-04-10 11:01:12 · 9343 阅读 · 3 评论 -
WebView.HitTestResult
常量: 方法: WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的链接的类型,返回一个extra的信息,如果打开链接不是一个url,或者打开的链接是JavaScript的url,他的类型是UNKNOWN_TYPE,这个url就会通过requestFocusNodeHref(Message)异步重定向。返回的extra为null,或者翻译 2016-04-10 10:35:58 · 9440 阅读 · 0 评论 -
PropertyValuesHolder的使用
PropertyValuesHolder的使用PropertyValuesHolder这个类可以先将动画属性和值暂时的存储起来,后一起执行,在有些时候可以使用替换掉AnimatorSet,减少代码量在activity_main.xml文件中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://sche原创 2016-04-26 23:55:34 · 8291 阅读 · 2 评论 -
ValueAnimator.ofObject的使用
ValueAnimator.ofObject的使用1.activity_anim.xml文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"原创 2016-04-27 13:39:51 · 2077 阅读 · 0 评论 -
CoordinatorLayout与ListView协同让FAB悬浮按钮从底部消失及出现
CoordinatorLayout协同布局在一般只结合RecyclerView和NestedScrollView使用,如果我使用ListView没有效果的。但是,由于业务原因使用ListView,有需要实现协同的效果怎么办?其实分析RecyclerView和NestedScrollView的源码可以知道,他们都实现了一个接口NestedScrollingChild,所以我们可以自定义ListView原创 2016-05-10 12:06:52 · 6728 阅读 · 0 评论 -
Activity进入与退出动画之xml实现
Activity进入与退出动画之xml实现Activity进场动画和出场动画,有2中实现方式,一种是通过在style.xml文件中设置进场和出场的动画效果,一种是通过代码的方式在startActivity及finish()后面调用overridePendingTransition(enter,exit)方法;具体实现:在style.xml中定义好一个样式:<style name="zhang" pa原创 2016-04-28 14:03:55 · 1828 阅读 · 0 评论 -
PopuWindow的使用
PopuWindow的使用1.在activity_main.xml文件中<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"原创 2016-04-29 17:34:48 · 944 阅读 · 0 评论 -
全局Dialog动画--更改系统定义的Dialog动画
全局Dialog动画–更改系统定义的Dialog动画在style.xml文件中,引用了主题,在主题中定义了Dialog的样式与动画,我们只需要在这替换系统定义个Dialog的动画就好。<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.Dar原创 2016-04-29 19:21:49 · 1150 阅读 · 0 评论 -
ItemTouchHelper类及RecyclerView的item滑动删除和拖拽案例
ItemTouchHelper类是v7包下的一个针对RecyclerView拖拽和滑动删除的辅助类,英文的解释:This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.下面用一个例子介绍一下:先看效果图: 先介绍一下项目的结构图: 简要说明helper文件夹中,是自己定义的接口原创 2016-05-25 17:06:18 · 2274 阅读 · 0 评论 -
android中的Timer与Handler的比较
Timer是一个定时器,需要结合TimerTask使用,是一个定时的机制,更倾向于定时的功能。handler是android中的消息机制,通过handler可以post执行任务,或send发送消息以及其他功能。所以2者的相同点是:在什么时间去执行一个任务。不同点:出发点就不同吧,Timer就像是一个计时器,多久执行一个任务或间隔多久执行;handler更多的是一个通信的功能,大多数用于子线程发送消息原创 2016-05-13 17:31:49 · 5482 阅读 · 1 评论 -
如何捕获系统应用程序的界面&&调用系统的下载管理(Downloads)界面
捕获系统应用程序的界面 1.打开你需要捕获的应用程序的界面,通过START字段过滤会有类似下图的log出现,通过log我们可以发现应用程序的包名和界面的具体内容。2.通过包名,查询系统源码,找到对应的清单文件,找到对应的意图过滤器。3.在DownloadManager中对action进行了封装。调用系统的下载管理(Downloads)界面Intent intent = new Intent(Dow原创 2016-04-24 10:46:32 · 841 阅读 · 0 评论 -
自定义SwipeLayout--仿QQ侧滑条目
自定义SwipeLayout–仿QQ侧滑条目先看动图 看布局文件activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=原创 2016-05-19 16:08:08 · 1571 阅读 · 0 评论 -
ClipDrawable的使用
ClipDrawable的使用ClipDrawable对应于标签,他可以根据自己当前的等级(level)来裁剪另一个drawable。裁剪的方向可以通过android:clipOrientation和android:gravity属性来共同控制。例子: 1.在clip_drawable.xml文件中<?xml version="1.0" encoding="utf-8"?><clip xmlns原创 2016-04-24 14:33:41 · 1452 阅读 · 0 评论 -
TransitionDrawable的使用
TransitionDrawable的使用TransitionDrawable对应标签,用于实现两个Drawable之间的淡入淡出效果。<transition xmlns:android="http://schemas.android.com/apk/res/android"> <-- !item的相关属性介绍--> <item android:drawable="@color/co原创 2016-04-24 13:41:58 · 1020 阅读 · 0 评论