自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

原创 带分割线的百分比进度条

带分割线的百分比进度条// the codepublic class WProgressBar extends View { private Paint rightPaint; private Paint leftPaint; private int widthSize; private int heightSize; private int hDefaultSize; private int wDefaultSize; private Rect

2021-03-03 13:22:43 379

原创 kotlin自定义表盘

1.最近在学习kotlin的使用顺便自定义一个View做一下练习,废话不多说比较简单,直接上代码。class DialPlateView :View { var str= listOf("300","600","900","计划值") var degree = 10f var h = object :Handler(){ override fun handl

2018-02-07 10:27:57 318

原创 retrofit上传获取文件上传进度

1.重写CallBack接口public abstract class UploadCallback implements Callback { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { o

2017-10-12 15:05:31 855

原创 腾讯bugly热更新

一、热更新完整接入流程· 1.打基准包安装并上报联网(注:填写唯一的tinkerId)· 2.对基准包的bug修复(可以是Java代码变更,资源的变更)· 3.修改基准包路径、修改补丁包tinkerId、mapping文件路径(如果开启了混淆需要配置)、resId文件路径· 4.执行tinkerPatchRelease打Release版本补丁包· 5.选择app/build/o

2017-09-06 19:15:16 831

原创 状态模式

1.状态模式简介:        状态模式中的行为是由状态来决定的,不同的状态会有不同的行为。状态模式是平行的、不可替换的,这一点还是与策略模式有区别的。策略模式的行为是彼此独立,可相互替换的。public interface UserState { // 转发 void forward(Context context); // 评论 void

2017-05-28 20:57:46 360

原创 RecyclerView的万能适配器

public abstract class CommandRecyclerAdapter extends RecyclerView.Adapter{ private Context mContext; private List dataList; private LayoutInflater layoutInflater; public CommandRecy

2017-05-03 20:59:20 431

原创 MVP框架实战Demo

最近一直在研究MVP设计模式,写了一个小练习,不足之处还望多多指教。1.创建Presenter静态类public abstract class BasePresenter { public final static V CreateModel(Class vClass){ V model = null; try { mo

2017-03-23 21:06:44 524

原创 MVP + Retrofit

1.创建V,Ppublic interface IView { void getHttpData(String data);}public interface IPresenter { void getHttpInstance(String url);}2.分别实现P接口public class IPresenterImpl implements IPrese

2017-03-05 21:49:57 241

原创 自定义View实现抽奖转盘

public class LuckCircle extends SurfaceView implements SurfaceHolder.Callback,Runnable { private SurfaceHolder mHolder; private Canvas mCanvas; /* * 用于绘制的线程 * */ private Thre

2017-02-03 11:09:34 803

原创 自定义View实现刻度盘

public class ViewTest extends View { private Paint mPaint; private int mPadding; private int mRadius; private int mInnerRadius; private static int KeDu_Circle = 8; public Vie

2017-02-03 10:44:12 454

原创 打造安卓流式布局

public class FlowLayout extends ViewGroup { public FlowLayout(Context context) { this(context,null); } public FlowLayout(Context context, AttributeSet attrs) { this(conte

2017-02-03 10:36:20 242

原创 设计模式之责任链模式

1.什么是责任链模式 责任链模式就是将接受者对象连城一条链,并在该链上传递请求知道有一个接受者对象处理它。通过让更多对象有机会处理请求,避免了请求发送者和接受者之间的耦合。 责任链模式中,作为请求接受者的多个对象通过对其后继的引用而连接起来的形成的一条链。请求这这条链上传递,直到链上的某个接受者处理了这个请求,每个接受者都可以选择自行处理请求或是向后继传递请求。2.责任链模

2016-11-29 09:38:38 261

原创 设计模式之模板方法模式

1.什么是模板方法模式 算执行的统一框架,模板方法模式定义了一个操作中的算法骨架而将一些步骤 延迟到子类中实现使得子类可以在一个不改变算法结构的同时,就重新定义一个 算法某些特定步骤。2.模板方法模式的优点 分装性好 复用性好 屏蔽细节 便于维护3.模板方法模式得缺点 继承(单继承)/** 抽象方法,为子类提供方法*

2016-11-29 09:09:01 236

原创 设计模式之适配器模式

适配器定义:适配器模式将一个类的接口,转换成客户期望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作;适配器的分类1.组合的方式:采用组合的方式的适配器成为对象适配器特点:把“把被适配者”作为一个对象组合到适配器类中,以修改目标接口包装被适配者2.继承:采用继承方式的称为类适配器特点:通过多重继承不兼容接口,实现对目标接口的匹配,单一的为某

2016-11-22 15:43:53 228

原创 设计模式之工厂模式

工厂模式概念:1.实力化对象,用工厂方法代替new操作2.工厂模式包括工厂方法模式和抽象工厂模式3.抽象工厂模式是工厂方法模式的扩展工厂模式的意图:1.定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化2.工厂方法把实例化的工作推迟到子类中去实现适合工厂模式的场景:1.有一组类似的对象需要创建2.在编码是不能预见需要创建那种类的实例3.系统需

2016-11-22 15:35:33 204

原创 Java中的反射应用

一、Class类1.在面向对象的世界里,万事万物皆对象。类是对象,类是java.lang.Class类的实例对象2.Class.forName("类的全称");       1).不仅表示了类的类类型,还代表了动态加载类      2).编译时刻加载类是静态加载类,运行时刻加载类是动态加载类      3).基本数据类型 void关键字 都存在类类型4.Class的基本

2016-11-22 15:28:00 271

原创 自定义View控件实现卫星菜单

如何自定义ViewGroup1、自定义属性的声明与获取2、测量onMeasure3、布局onLayout自定义属性的声明 与获取1.分析需要的自定义属性2.在res/values/attr.xml定义声明3.在layout xml文件进行使用4、在View的构造方法中进行获取测量onMeasure1.测量模式 EXACTLY、AT_MOST、UN

2016-11-21 15:20:06 485

原创 设计模式之观察者模式

1.观察者模式创建步骤 1.目标(被观察者)对象的定义 2.具体目标对象的定义 3.观察者接口的定义 4.观察者的具体实现2.观察者的两种实现方式:推模型 和 拉模型 推模型: 目标对象主动向观察者推送目标得的详细信息 推送的信息通常是目标对象的全部或者部分数据 拉模型: 目标对象再通知观察者时,只传递少量信息

2016-11-21 13:09:30 304

原创 设计模式之策略模式

策略模式的设计原则: 1.找出应用中需要变化的部分,把他们独立出来,不要和那些不需要变化的代码混在一起 2.面向接口编程,而不是面向实现编程 3.多用组合,少用继承策略模式的实现 1.通过分离变化得出策略接口Strategy public interface FlyingStragety { void performFly();

2016-11-21 12:08:15 349

转载 打造CommonAdapter

1.创建CommonAdapter类:public abstract class CommonAdapter02 extends BaseAdapter { protected Context mContext; protected List datas; protected LayoutInflater mInflater; public CommonAda

2016-11-15 17:09:53 229

原创 android图片压缩

public final class BitmapUtil { private BitmapUtil() { } public static Bitmap loadBitmapWithScale( File imageFile, int reqWidth, int reqHeight) {

2016-10-26 19:42:58 222

原创 android加密算法

/** * 常用的加密算法 */public final class CryptUtil { private CryptUtil(){} /////////////////////////////////////////////////////////////////////////// // DES ///////////////////////////

2016-10-25 21:47:36 454

转载 android 判断是wifi还是4g网络

public class NetworkUtils { public static boolean isNetworkAvailable(Context c) { Context context = c.getApplicationContext(); // 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理) Connectiv

2016-10-07 20:16:15 5172

原创 百度地图ApiKey申请流程

1.首先cmd 进入如图所示的目录下:2.接着输入keytool 检测3.输入以下指令,口令为android4.生成SHA15.6.将图5中grandle文件的包名,放在如图所示中:7.8.点击Create new..按钮9.此时系统自动生成mykey.jks10.

2016-09-26 20:27:01 860

原创 RemoteService中的 Messenger信使

1.app服务端MessageService.javapublic class MessageService extends Service { /** * 用于接收其他应用程序传递过来的消息, * 信使可以封装Handler, 封装之后就可以接收数据 */ private Handler mReceiveHandler = new

2016-09-25 18:52:56 380

原创 RemoteSever的通信AIDL

1.在main文件中创建一个ADIL文件夹,并在文件中创建ICalcInterface.aidl 文件,注意当在另外一个应用程序中也要创建一个一模一样的文件(该文件的所存在的位置,即包名+文件名),点击重建工程,此时工程文件中产生一个generated文件夹。// ICalcInterface.aidlpackage com.wwj_fly.remoteservicedemo.service

2016-09-25 18:33:00 234

翻译 BroacastReceiver的介绍

1.清单文件:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mobi.vhly.broadcastreceiverdemo" > --> <a

2016-09-22 12:16:43 484

原创 Handler的用法介绍

1.handler主要用于子线程与主线程的消息传递,由于UI线程不能执行耗时操作,所以我将耗时操作放到子线程中去执行,并同Handler机制将子线程获取的消息发送到UI线程中,从而实现UI的线程中控件的内容的实时更新。2.一般都是子线程向主线程发送消息,那如何实现主线程向子线程发送消息呢?其实我们可以通过下面实例来实现:public class MainActivity extends A

2016-09-20 22:10:26 412

翻译 ListView多布局实现

1.如何实现ListView的多布局呢?比如说。我们打算设计一个聊天窗口,自己的聊天内容放置在对话框的右边,别人发来的消息放置在对话框的左边。  下面我们可以看,如下实例:1) 首先我们要先设置两个两个布局文件,分别代表别人的发送的消息,和自己发送的消息,实例如下:chat_item_right.xml<RelativeLayout xmlns:android="http://s

2016-09-20 13:31:50 345

翻译 loader的基本用法

1.loader的用法实例如下public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks { private SimpleCursorAdapter mAdapter; @Override protected void onCreate(Bu

2016-09-17 19:53:48 1351

翻译 fragment的基本用法

1.首先创建一个UI线程public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { private HomeFragment mHomeFragment; private DmFragment mDmFragment; priva

2016-09-17 19:35:27 569

原创 fragment实现横竖屏的切换

1.以新闻布局为例,首先创建新闻标题fragment 和 新闻内容fragment1)首先创建手机新闻标题的fragment布局文件fragment_news_list.xml<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://

2016-09-17 19:06:04 9294 1

翻译 ListView控件中item中实现的Button的点击事件

1.适配器我们可以简单的理解为数据与控件之间交互的桥梁,如果我们想要实现在Listview控件之中实现Button的点击事件,就需要把当前的UI线程传进Adapter之中,因此要在Adapter之中设置监听器,即适配器中创建setOnClickListener方法,适配器中定义了ViewHolder静态类定义了button控件,此时需要ViewHolder类中创建setOnClickListene

2016-09-11 13:25:21 4117

原创 自定义ContentProvider内容提供者

一、自定义的内容提供者1. 继承 ContentProvider2. 实现 增 删 改 查 方法 以及 onCreate 方法3. 制定 Uri 的网址规则,形成特定的功能4. 四大组件都需要在清单文件注册,来确认内容提供者是否可以被 其他程序访问5. 内部需要进行数据的操作,增 删 改 查    5.1 确认使用哪种数据类型

2016-09-09 21:01:47 443

原创 SharedPreferences的存储位置和格式

1.SharedPreferences 本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name,int mode)来获取该实例该方法的第二个参数可以设置模式有:(1).Context.MODE_PRIVATE:指定该SharedPreferences数据只能被应用程序读写(2)

2016-09-08 11:09:59 15817 2

转载 AsyncTask加载之图片下载(2)

1.创建工具类public final class HttpTool { private HttpTool(){} public static byte[] doGet(String url){ byte[] ret = null; if (url != null) { HttpURLConnection conn

2016-09-08 09:46:41 300

原创 反射实现适配器的封装

1.通过封装我们可以减少代码的复用率,同时我们也可以减少代码量。public abstract class CommonAdapter extends BaseAdapter { private Context context; private int layoutId; private LayoutInflater inflater; private List

2016-09-08 09:36:35 323

原创 AsyncTask异步加载之图片下载

1.创建图片工具类ImageUtilpublic class ImageUtil { /* * * 使用Lru算法来将图片进行缓存,从而节省流量的使用 * * */ static LruCache cache = new LruCache(5 << 20){ @Override protected int si

2016-09-08 09:28:16 267

原创 File类中的方法实现

public class File { public static void main(String[] args) { File file = new File("E:\\kankan\\XMPCache"); File absoluteFile = file.getAbsoluteFile(); System.out.println("

2016-09-07 13:46:08 317

转载 AsyncTask异步加载以及Proxy代理模式访问网络数据

1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点:l 在使用多个异步操作和并需要进行Ui变

2016-08-31 19:33:55 709

Android的kotlin高清电子文档

该文档是一篇讲述Android的kotlin的基本语法结构的电子文档,比较的简单而系统,适合学习kotlin的初学者。

2018-02-11

百度地图点聚合demo

这是实现百度地图点聚合的一个简单程序,修改了部分源码可以的更改聚合点的颜色

2017-10-27

空空如也

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

TA关注的人

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