
Android学习
lifeirong
这个作者很懒,什么都没留下…
展开
-
Fragment生命周期
Fragment生命周期在Viewpager中使用fragment在FrameLayout中使用Fragment在Viewpager中使用fragmentviewpager中存放3个fragment,viewpager默认加载3个view生命周期初次加载viewpager03-09 11:53:57.212: I/wj(1347): OneFragment:onAttach03-09原创 2017-09-25 16:54:25 · 307 阅读 · 0 评论 -
editText代码设置输入限制
1.设置只能输入数字,包括小数点et.setKeyListener(new DigitsKeyListener(false, true));2.设置只能输入规定的数字,字母et.setKeyListener(new NumberKeyListener() { @Override public int getInputType() {翻译 2017-09-26 20:59:50 · 619 阅读 · 0 评论 -
使用okhttp和前台服务实现断点续传功能
参考资料《第一行代码》代码示例清单文件配置<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testandroid"> <uses-permission android:n翻译 2017-09-26 21:08:28 · 582 阅读 · 0 评论 -
桌面悬浮小火箭的实现
思路使用serivce在后台启动小火箭小火箭使用windowmanager实现。用ontoch监听实现小火箭的拖拽。代码实现public class RocketService extends Service { private WindowManager mWM; private View view; private int startX ;翻译 2017-09-26 21:12:11 · 908 阅读 · 0 评论 -
启动系统的摄像头
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private static final String TAG = MainActivity.class.getName(); private Button btnImage; private Button翻译 2017-09-29 15:41:56 · 306 阅读 · 0 评论 -
让控件融入系统状态栏(沉浸式)
资料来源《第一行代码》方式一:android:fitsSystemWindows="true"该属性表示该控件会出现在系统状态栏里。注意,要想某个控件融入状态栏,必须该控件的所有父布局都设置该属性。设置完该属性后,还需要将程序主题中的状态栏颜色改为透明色,使用属性android:statusBarColor由于该属性5.0才有,所有必须适配。创建values-21文件夹,再创建style.翻译 2017-09-29 15:42:52 · 324 阅读 · 0 评论 -
Lambda表达式小例子
资料来源《第一行代码》定义Lambda表达式本质上是一种匿名方法,没有方法名,没有访问修饰符,没有返回值类型。使用准备先要在module的build.gradle中配置android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com翻译 2017-09-29 15:45:41 · 411 阅读 · 0 评论 -
多窗口模式编程介绍
资料来源《第一行代码》多窗口下的生命周期多窗口模式并不会改变活动原有的生命周期。只是会将用户最近交互过的那个活动设置为运行状态(onResume),而将多窗口模式下另一个可见的活动设置为暂停状态(onPause)。如果用户又去和暂停的活动进行交互,那么该活动就变成运行状态,之前处于运行状态的活动就变成暂停状态。多窗口会改变应用大小,先启动activity,再进入多窗口模式,activity会重翻译 2017-09-29 15:48:24 · 682 阅读 · 0 评论 -
android中的定时任务
资料来源 《第一行代码》两种方法一个是java的Timer类。一个是android的Alarm机制。 Timer类有一个缺陷,不适用长期在后台运行的定时任务。因为,android手机在长时间不操作的情况下,CPU会进入休眠,这样导致Timer的定时任务无法正常运行。 Alarm则具有唤醒CPU的功能,可以保证大多数情况下,需要执行定时任务时,cpu都能正常工作。 注意一点:唤醒CPU和唤醒翻译 2017-09-29 15:51:09 · 778 阅读 · 0 评论 -
从相册中选择照片
资料来源 《第一行代码》注意两点:6.0以上需要运行时权限判断。4.4及以上系统,选取相册中的图片不再返回图片真实的uri,而是一个封装后的uri。public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {翻译 2017-09-29 15:53:14 · 771 阅读 · 0 评论 -
自定义内容提供者
资料来源 《第一行代码》1、内容URI的格式分两种:content://com.wj.meme.provider/table1 查询com.wj.meme这个应用下的table1表所有数据。content://com.wj.meme.provider/table1/1 查询table1表里id=1的数据。2、 使用通配符表示:“*” 表示匹配任意长度的任意字符 “#” 表示匹配任意长度翻译 2017-09-29 16:03:35 · 2924 阅读 · 0 评论 -
通知NotificationManager的简单使用
资料来源 《第一行代码》兼容性问题使用v4库中的NotificaationCompat类,可以保证程序在所有Android系统版本上使用。在activity中,使用一个简单的通知public void createNotification(View view){PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(t翻译 2017-09-29 16:06:19 · 1016 阅读 · 0 评论 -
工具类-dp转化
public class DensityUtils { // dp2px public static int dp2px(Context context, float dp) { float density = context.getResources().getDisplayMetrics().density ; // +0.5f为了四转载 2017-09-26 20:56:27 · 450 阅读 · 0 评论 -
工具类-万能Adapter
public abstract class MyAdapter<T> extends BaseAdapter { private ArrayList<T> mData; private int mLayoutRes; //布局id public MyAdapter() { } public MyAdapter(ArrayList<T> mDat转载 2017-09-26 20:55:59 · 333 阅读 · 0 评论 -
工具类-软键盘
public class SoftKeyboardUtils { public static void closeBoard(Context context ) { InputMethodManager imm = (InputMethodManager) context .getSystemService( Context. INPUT_MET翻译 2017-09-26 20:54:47 · 274 阅读 · 0 评论 -
popwindow弹出后点击外部控件响应点击事件
popwindow弹出后点击外部控件响应点击事件popwindow弹出后,如果想要点击外部消失popwindow,则实现以下方法:pop.setOutsideTouchable(true);pop.setBackgroundDrawable(new ColorDrawable());pop.setOnDismissListener(new OnDismissListener() {原创 2017-09-25 17:00:42 · 3354 阅读 · 0 评论 -
拿到view真实宽高的4种方式
拿到view真实宽高的4种方式实例代码public class MainActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);原创 2017-09-25 17:03:37 · 331 阅读 · 0 评论 -
读书笔记-设计模式-单例模式
读书笔记-设计模式-单例模式本文资料来源《Android源码设计模式解析与实战》:定义优缺点关键点饿汉单例模式懒汉模式DCL双重检查锁定静态内部类单例模式枚举单例使用容器实现单例单例模式的定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。使用场景:访问IO和数据库等资源。优缺点优点由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁的原创 2017-09-25 16:34:42 · 305 阅读 · 0 评论 -
Android不同启动模式下的生命周期
singleTop:栈顶复用模式。如果activity在栈顶,就不用重新创建。其他activity再次启动它,回调以下方法:05-17 18:00:26.793: I/TAG(23870): onCreate(savedInstanceState)....05-17 18:00:26.804: I/TAG(23870): onStart.....05-17 18:00:26.804: I/T原创 2017-09-25 17:13:50 · 470 阅读 · 0 评论 -
windowManager使用
在桌面添加一个控件,并动态拖动它代码实例WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE ); Button mFloatingButton = new Button(this ); mFloatingButton .setText("windowManager原创 2017-09-25 17:16:56 · 414 阅读 · 0 评论 -
关于子线程刷新ui
当检测当前线程是否为主线程的类还没有初始化完成时,在子线程是可以刷新ui的。如果,初始化完成后,就不能刷新了,实际开发中,不会在子线程刷新ui。原创 2017-09-25 17:21:01 · 388 阅读 · 0 评论 -
创建桌面快捷方式
.添加权限:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>代码实现:Intent intent = new Intent();intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");//这个inten翻译 2017-09-25 17:22:53 · 278 阅读 · 0 评论 -
简易Builder模式
参考资料《Android源码设计模式解析与实战》、LoadSir定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景相同的方法,不同的执行顺序,产生不同的事件结果时。多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用,这个时候使用建造者模式非常合适。当初始化一个对象特别复杂原创 2017-09-26 20:47:05 · 507 阅读 · 0 评论 -
工具类-SystemInfoUtils
public class SystemInfoUtils { /** * 判断一个服务是否处于运行状态 * * @param context * 上下文 * @return */ public static boolean isServiceRunning(Context context, Strin原创 2017-09-26 20:52:09 · 499 阅读 · 0 评论 -
工具类-DrawableUtils用代码创建shape
public class DrawableUtils { public static GradientDrawable createShape(int color){ GradientDrawable drawable=new GradientDrawable(); drawable.setCornerRadius(UiUtils.dip2px(5));//设原创 2017-09-26 20:53:01 · 2231 阅读 · 0 评论 -
工具类-将图片切成圆形图片
/** * 转换图片成圆形 * * @param bitmap * 传入Bitmap对象 * @return */ public static Bitmap toRoundBitmap(Bitmap bitmap) { if(bitmap==null){ return翻译 2017-09-26 20:53:40 · 769 阅读 · 0 评论 -
Google开源WebRTC框架调研
公司开发音视频项目,需要用到webRTC,于是做一番调研了解webRTC工作流程,调研结果如下:概念Signaling信令服务器(socket服务器)用于交换元数据来协调通信的服务器。一般通过socket来实现。元数据包括:会话控制消息用于打开或关闭通信;错误消息;媒体元数据;密钥数据;网络数据等等。NAT网络地址转换(NAT,Network Address Translation...原创 2019-08-20 16:12:33 · 3123 阅读 · 0 评论