自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 gradle更新失败,一直刷新,自己下载gradle

gradle更新失败,一直刷新,自己下载gradle修改: classpath ‘com.android.tools.build:gradle:x.x.x’ distributionUrl=https://services.gradle.org/distributions/gradle-x.x-all.zip根据官方指定的版本修改 /用户/.gradle/wrapper/dists 找到最新的

2017-03-07 14:39:28 1157

原创 android组件化

关于为毛要Android组件化就不多解释了。 组件化首先就要想到要有一个application,多个模块moudle,一个用来依赖的moudule:这个app依赖moudleA和moudleB,然后moudleA和moudleB分别依赖moduleLib。因为要整体APP可以运行,模块之间又可以单独运行,那么就要有全局的字段来标记是拆分还是合并。那么就需要定义一个全局的标识字段:所以在gradle.proper

2016-11-22 10:13:13 1576

原创 Snackbar和toast以及snackbar的样式自定义

首先说说Toast。可能大家觉得这玩意儿没什么好说的。就是简单的show一下而已。这里也只是想说一个小技巧,就是有时候你多次点击一个按钮显示toast的时候,他会一直show个不停,这个时候就需要一个小的技巧:private void showToast() { if (toast == null) { toast = Toast.makeText(this,

2016-08-03 11:46:45 3175 1

原创 走向设计(策略模式)

策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。 举例: //这里有一个做某件事的接口:public interface IsDoing { public void doing();}//这里实现了吃的方法:public class Eat implements IsDoing {

2016-07-29 16:03:35 258

原创 走向设计(单例模式)

public class Test { //私有化构造函数 private Test(){} //一个静态的实例 private static Test test; //给出一个公共的静态方法返回一个单一实例 public static Test getInstance(){ if (

2016-07-28 14:45:57 240

原创 五子棋的简单实现方式

package com.diya.wuziqitest;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;impo

2016-04-07 14:11:16 444

原创 webVIew中ZoomButtonsController崩溃//解决Receiver not registered: android.widget.ZoomButtonsController

/*网上主流的那些设置webview为空之类的方式,只是在部分机型可以解决。最简单的解决方式就是给按钮给足够的时间,即使是界面已经销毁了。也就是延迟销毁webview*/if(webview != null) { webview.getSettings().setBuiltInZoomControls(true); mWebVie

2016-01-11 17:34:43 2610

原创 关于杀进程关闭activity的时候onDestroy的执行情况

当android通过杀进程的APP杀死进程后,会执行ondestroy方法,当ondestroy方法执行完成后才彻底杀死进程!注意:点击按钮清理后台数据的时候每一个activity都会执行ondestroy,但是通过滑动卡片删除应用杀死进程的时候,或者通过应用管理杀死进程的时候,只有栈里面的第一个没有销毁的activity执行ondestroy方法,一般都是mainActivity,其它activi

2016-01-11 17:25:45 18549 10

原创 关于fragment丢失Activity

Android app在后台运行时候,activity很可能会被系统回收,但是fragment不会随着activity回收而回收。当activity被回收后再次打开App,系统会启动没有被回收的fragment,但是activity又被系统重新启动,这是activity的fragment又被重新加载。这是就出现两个fragment。旧的fragment就会丢失activity导致报错。

2015-12-18 11:58:24 719

原创 Android Studio的基本设置和常用快捷键(Mac 版)

快捷键常用:自动补全:class name completion 自己改为Alt + / 整理代码: control + Alt + L 搜索:command + F (上下跳转 command + G 和 command + shift +G) 全局搜索 command + shift + F 搜索类:command + O 搜索方法: command + f12 调用位置:cont

2015-12-18 11:49:56 519

原创 通过监听最外层布局的改变判断键盘的状态,软键盘的弹出和收起都会改变外层布局

通过监听最外层布局的改变判断键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);只需要最外层布局.addOnLayoutChangeListener(new OnLayoutChangeListener() {} 这样就可以根据情况判断,来控制一些操作了。下面这个例子的场景是scrollView底部有一个Edittext,当点击后键盘弹出,这时候让scr

2015-12-10 16:55:27 518

原创 如此简单的Scroller

首先:Scroller scroller = new Scroller(context);然后:scroller.startScroll(“开始位置x”, “开始位置y”, “要改变的位置x(这是变化量,也就是差值)”, “要改变的位置y(这是变化量,也就是差值)”, “时间,也就是,多久完成这个动作”); invalidate();最后:@Override public void comput

2015-12-10 15:52:34 363

原创 android焦点分发无法获取到Down事件,却有Move和Up

*首先:在父view里面重新拦截方法,判断他是一个滑动事件的时候return true,将事件拦截给自己的ontouchEvent。*@Override public boolean onInterceptTouchEvent(MotionEvent event) { switch (event.getAction()) {重点内容 case MotionEvent.ACTION_DOWN:

2015-12-08 12:33:33 1999

简单仿qq5.0侧滑菜单

这是使用scrollview实现的侧滑菜单。达到的效果和qq5.0效果相同。左侧菜单缩小,右侧界面放大。代码简洁。很容易理解。

2015-04-14

空空如也

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

TA关注的人

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