Android 随笔
文章平均质量分 65
a15838319826
这个作者很懒,什么都没留下…
展开
-
Android中使用事件总线的优缺点
Android中使用事件总线Eventbus的优缺点如下: 1.Android EventBus事件总线是一个Android平台轻量级的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得代码更加简洁,耦合性更低,提升代码质量。 2.AndroidEventBus使用注解来标识接收函数,这样函数名不受限制。 3.缺点原创 2018-01-30 11:36:56 · 1186 阅读 · 0 评论 -
android集成 任务调度 cron4j
最近有需要在Android使用很复杂的定时任务,android中timer满足不了需求,之前用过Java的Quartz任务调度框架,感受了其强大的机制 ,其中使用Cron表达式可以轻松的完成复杂的任务调度,开始尝试将其在Android中集成,但其依赖jre下的java.beans这个包,集成起来有点复杂,不过Quartz跟java都开源,可以尝试拿开源框架来集成。在网上找了一个更轻量级的并支持转载 2017-06-10 14:37:18 · 1645 阅读 · 0 评论 -
android 修改videoview的宽度和高度
如果直接用android的videoview,它是不允许你随意的修改宽度和高度的,所以我们要重写videoview!import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView;public class MyVideoView extends VideoVi原创 2017-06-22 10:02:56 · 8747 阅读 · 0 评论 -
Bundle 的使用
bundle的认识: 一种存放字符串和Parcelable类型数据的map类型的容器类,通过存放数据键(key)获取对应的各种类型的值(value),而且必须通过键(key)获取。bundle的用法: Bundle相当于Map类,就是一个映射,用Bundle绑定数据,便于数据处理 它主要作用于Activity之间的数据传递. bund原创 2017-06-09 17:48:37 · 628 阅读 · 0 评论 -
Android 中application 详解
1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息。通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Appli原创 2017-06-09 14:15:05 · 689 阅读 · 0 评论 -
android View 各种属性详解
Android.View.View(即View)类是以矩形的方式显示在屏幕上,View是用户界面控件的基础。View的继承层次关系如下图:可以看到所有的界面控件都是View的子类。简单证实一下,每当你用findViewByIds(R.id.xx)时总要将其强转,因为该方法返回的是一个View实例,有木有!!!其中不得不提View的subClass ViewGroup。Android系统原创 2017-06-19 17:42:20 · 3031 阅读 · 0 评论 -
Android 中的缓存机制与实现
Android 中的缓存机制与实现 Android开发本质上就是手机和互联网中的web服务器之间进行通信,就必然需要从服务端获取数据,而反复通过网络获取数据是比较耗时的,特别是访问比较多的时候,会极大影响了性能,Android中可通过二级缓存来减少频繁的网络操作,减少流量、提升性能。一、二级缓存工作机制 所谓二级缓存实际上并不复杂,当Android端需要获得数据时比如获取网络中的图片原创 2017-06-07 17:16:05 · 3200 阅读 · 1 评论 -
Android ViewHolder的用法
@Override public View getView(int position, View convertView, ViewGroup viewGroup) { ViewHolder viewHolder; if (convertView == null) { viewHolder = new原创 2017-06-02 16:45:04 · 519 阅读 · 0 评论 -
Android获取系统时间的几种方式
方式一:SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Date(System.currentTimeMillis()); //获取当前时间 String str = formatter.原创 2017-05-22 14:22:46 · 644 阅读 · 0 评论 -
android Service的用法
Service是后台运行的服务,启动Service可以StartService或者bindservice看看Service的生命周期。当调用StartService时,先走oncreat方法,在走onstart方法。当stopservice时,走ondestory方法。可以绑定一个Service,让它在后台执行,比方说后台播放歌曲等就是这样的。当绑定一个Service时,用bind原创 2017-06-01 16:55:58 · 256 阅读 · 0 评论 -
Service 与 Thread 的区别
很多时候,你可能会问,为什么要用 Service,而不用 Thread 呢,因为用 Thread 是很方便的,比起 Service 也方便多了,下面我详细的来解释一下。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2). Service:Service 是android的一种机制,当它运行的时候如果是原创 2017-06-01 16:40:31 · 291 阅读 · 0 评论 -
URL转Drawable之 Android中获取网络图片的三种方法
android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:1.直接获取:(容易:ANR,不建议)mImageView = (ImageView)this.findViewById(R.id.imageT原创 2017-06-26 16:31:45 · 4284 阅读 · 0 评论 -
Android GridView的用法总结
GridView和ListView是Android里面比较常用的多控件布局,其使用方法上篇博客写过的ListViewf非常相似都要用到适配器来帮助创建界面。这里比较经常用适配器,那么下一篇博客就有必要来探究一下适配器的作用了。 这里我通过两种方式实现GridView布局,一种是比较简单的SimpleAdapter适配器来完成。另一种是继承BaseAdapter来自定义适配器。个人感原创 2017-06-15 09:58:53 · 1001 阅读 · 0 评论 -
Android 设置TextView透明度
TextView tv = (TextView) findViewById(R.id.xx);第1种方法:tv.setBackgroundColor(Color.argb(255, 0, 255, 0)); //背景透明度tv.setTextColor(Color.argb(255, 0, 255, 0)); //文字透明度第2种方法:tv.setTextColor(原创 2017-08-17 10:33:21 · 12388 阅读 · 1 评论 -
Activity在onResume里调用getIntent()拿不到数据
有时候MainActivity一般都是设置启动模式为:singleTop,也就是说如果MainActivity处于栈顶位置的话就不会从新创建实例,也就是不会调用Activity的onCreate方法,会调用onResume方法,所以从通知栏直接打开MainActivity就会在onResume里面拿不到intent携带的数据,处理方法如下: /** * * 重写此方法,加上se原创 2018-01-15 17:28:14 · 827 阅读 · 0 评论 -
java中double型数据的加减乘除
java中double型数据的加减乘除public class Arith { private static final int DEF_DIV_SCALE = 10; /** * 两个Double数相加 * @param v1 * @param v2 * @return Double */ public sta原创 2017-12-07 17:48:56 · 2175 阅读 · 0 评论 -
android 判断时间是否已过期
public static boolean IsToday(String day) throws ParseException { // 当前的时刻 Calendar pre = Calendar.getInstance(); Date predate = new Date(System.currentTimeMillis()); pre.setTime(preda原创 2017-12-09 11:09:14 · 2033 阅读 · 0 评论 -
如何得到一个指定日期6个月后的日期
参考下面方法import java.util.*;import java.text.*;class test{ public static void main(String []args){ Calendar c = Calendar.getInstance();//获得一个日历的实例 SimpleDateFormat sdf = new SimpleDat原创 2017-12-09 11:07:58 · 3173 阅读 · 0 评论 -
Android EditText 属性汇总
设置显示在空间上的提示信息 android:numeric="integer" 设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true" 设置单行输入,一旦设置为true,则文字不会自动换行。android:password="true" 设置只能输入密码android:textColor = "#ff8c00" 字体颜色andro原创 2017-11-13 17:02:25 · 332 阅读 · 0 评论 -
Android shape的用法
<stroke android:width="@dimen/height_divider" android:color="@color/colorDivider" /> <padding android:bottom="30dp" android:left="20dp" android:right=原创 2017-09-12 08:47:58 · 289 阅读 · 0 评论 -
仿微信提现金额,输入金额只能有两位小数及文字监听的改变
/** 只能输入两位小数 */public class Edit2PointTextWatcher2 implements TextWatcher { private EditText et; private String result; private TextView tv; public Edit2PointTextWatcher2(EditText et) { super原创 2017-09-18 08:52:41 · 2237 阅读 · 0 评论 -
Android 中怎么把edittext光标放在文字下面
EditText et_fourth_search = (EditText) findViewById(R.id.et_fourth_search);et_fourth_search.setSelection(et_fourth_search.getText().length());原创 2017-08-28 16:53:21 · 556 阅读 · 0 评论 -
Android 布局优化之include
在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然。这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流。一、include首先用得最多的应该是include,按照官方的意思,include就是为了原创 2017-09-05 14:42:39 · 599 阅读 · 0 评论 -
Android 动画的介绍和实现
1.Animation 动画类型Android的animation由四种类型组成:XML中代码中 2.Android动画模式Animation主要有两种动画模式:一种是tween animation(渐变动画)一种是frame by frame(画面转换动画) 3.如原创 2017-09-05 09:05:28 · 271 阅读 · 0 评论 -
Android shape 的详解及使用
一,概述我们在android开发中经常要用到图片,而一些简单的图片我们完全可以用shape形状drawable资源代替,使用shape有一个好处就是可以减小我们apk的大小,因为同样的效果,shape比图片更节省空间,好了,我们废话不多说,下面进入正题。二,shape初识shape是android drawable资源中的一个重要的角色,drawable资源覆盖面广,它不仅原创 2017-09-04 15:53:36 · 470 阅读 · 0 评论 -
Android data/data目录
首先内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。一、 files1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。2. Context.openFileIn原创 2017-06-05 17:51:30 · 2540 阅读 · 0 评论 -
Android设计规范-字体字号
众所周知安卓设备的尺寸众多,不同的分辨率对应不同的dpi模式.分辨率由粗糙到清晰排序:ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi(4K分辨率).其中主流分辨率是hdpi,xdpi,xxhdpi.以后还会普及xxxhdpi和更清晰的分辨率.而在我们app项目的设计和开发中,基于项目成本控制的考虑,并不会去为每一种分辨率去设计一套UI.这就需要我们有一套设计原创 2017-06-01 09:30:51 · 4160 阅读 · 0 评论 -
Android四大启动模式
一、启动模式概述 Android开发同学们,估计有很多同学跟我一样,学习Android很久了,还不清楚Activity的四大启动模式,如果耐心看完本文章,相信你会从此彻底理解清楚Activity四大启动模式到底是什么东东。了解Activity启动模式之前,先介绍一下Android中task容器栈,其实,就是Activity的一个容器集合,所有的Activi原创 2017-05-15 11:23:32 · 239 阅读 · 0 评论 -
Android 改变View位置 setLeft、etRight、setTop、setBottom等在API 11以下的替代方法
public final void setTop (int top) Sets the top position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, bec原创 2017-05-15 11:00:58 · 12241 阅读 · 0 评论 -
Android:数据存储之SQLite
Android在运行时集成了SQLite , 所以每个Android应用程序都可以使用SQLite数据库。我们通过SQLiteDatabase这个类的对象操作SQLite数据库,而且不需要身份验证。数据库存放的位置:data/data//databases/,查看数据库>>public class MainActivity extends Activity { private原创 2017-05-04 16:37:26 · 237 阅读 · 0 评论 -
Android:控件GridView的使用
如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView。<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"原创 2017-05-04 15:58:28 · 313 阅读 · 0 评论 -
Android:控件WebView显示网页
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。webview有两个方法:setWebChromeClient 和 setWebClientsetWebClient:主要处理解析,渲染网页等浏览器做的事情setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 WebViewClient原创 2017-05-04 14:52:31 · 273 阅读 · 0 评论 -
android 根据设置的日期获取星期几
/** * 判断当前日期是星期几 * * @param pTime 设置的需要判断的时间 //格式如2012-09-08 * * @return dayForWeek 判断结果 * @Exception 发生异常 */// String pTime = "2012-03-12"; private String getWeek(String pT原创 2017-05-23 16:08:53 · 4737 阅读 · 0 评论 -
Android开发之时间日期组件用法实例
时间日期设置组件:TimePicker、DatePicker在布局文件中直接可以添加到我们的布局样式中,具体代码如下:<LinearLayout android:id="@+id/linear1" android:orientation="vertical" android:layout_width="fill_parent" android:layout_原创 2017-05-23 16:00:57 · 688 阅读 · 0 评论 -
自定义TextView跑马灯效果
Android自带的跑马灯效果不太好控制,还必须要满足条件才能有效果,而且速度不受控制。前面我的博客中有一篇就是用Android自带的跑马灯效果的,但是基于不同的使用效果,这里在网上找到了一个更好的方法。沿用了作者的一些方法,但是添加了更好的扩展功能,和大家一起分享。这里面有控制往左往右两个方向的实现。1、首先是简单的布局main.xml<LinearLayout xmlns:androi原创 2017-05-23 15:50:14 · 268 阅读 · 0 评论 -
自定义上下文对话框
public class MyContextDialog extends Dialog { public MyContextDialog(Context context) { super(context); } public MyContextDialog(Context context, int theme) { super(conte原创 2017-05-03 11:56:57 · 295 阅读 · 0 评论 -
TextView不用获取焦点也能实现跑马灯
1.写一个类继承TextView package com.example.tt; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.widget.TextView;原创 2017-05-03 11:37:30 · 368 阅读 · 1 评论 -
Android 调用系统相机拍摄获取照片的两种方法实现实例
下面是演示代码:布局文件:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height原创 2017-05-02 17:05:40 · 589 阅读 · 0 评论 -
Android动态显示当前年月日时分秒系统时间
在布局文件中放一个TextView用来显示时间,如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="原创 2017-05-25 14:56:27 · 5819 阅读 · 9 评论 -
简要介绍一下asynctask和handler的优缺点
1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点:l 在使用多个异步操作和并需要进行Ui变更时原创 2017-05-15 16:52:03 · 643 阅读 · 0 评论