![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
清风徐来qfxl
这个作者很懒,什么都没留下…
展开
-
使用ConstraintLayout实现圆形菜单
使用ConstraintLayout实现圆形菜单 ConstraintLayout1.1.0发布之后增加了Circular Positioning 官方解释: You can constrain a widget center relative to another widget center, at an angle and a distance. This allows y...原创 2018-08-29 16:27:46 · 10786 阅读 · 2 评论 -
Android打造带删除的EditText并且实现输入框密码显示、隐藏
实现这个效果流程如下:1,重写EditText在后面加一个drawable2, 显示隐藏密码通过调用setTransformationMethod方法来实现1,自定义EditTextpackage com.example.myhandler;import android.content.Context;import android.graphics.Rect;import android...原创 2015-06-27 19:55:02 · 3760 阅读 · 0 评论 -
Android自定义View实现文字验证码
要实现上面的效果流程如下1,获取4个随机数2,将4个随机数绘制出来,并随机着色3,绘制障碍实现流程:1,创建一个Bitmap2,在Bitmap上绘制我们随机数并且着色3,在View的onDraw里将我们准备好的Bitmap绘制出来核心代码: Bitmap mBitmap = Bitmap.createBitmap(width, height, Bit...原创 2016-05-01 00:24:55 · 1965 阅读 · 1 评论 -
Kotlin学习笔记(九)【泛型】
Kotlin泛型泛型,即 “参数化类型”,将类型参数化,可以用在类,接口,方法上。 与 Java 一样,Kotlin 也提供泛型,为类型安全提供保证,消除类型强转的烦恼。 声明一个泛型类:class Box<T>(t: T) { var value = t}创建类的实例时我们需要指定类型参数:val box: Box<Int> = Bo...原创 2018-02-22 09:25:34 · 306 阅读 · 0 评论 -
Kotlin学习笔记(五)【继承】
继承说明Kotlin 中所有类都继承自Any 类,它是所有类的超类,对于没有超类型声明的类是默认超类:class Empty // 从Any隐式继承Any 默认提供了三个函数:equals()hashCode()toString()注意:Any 不是 java.lang.Object。 Kotlin所有的类都默认是final,如果一个类要被继承,可以使用 op原创 2018-01-16 11:06:12 · 186 阅读 · 0 评论 -
重识Handler
关于Handler,最开始的使用就是子线程想要刷新UI,必须用Handler来实现,那为什么Handler能够异步更新UI?Handler的内部机制是什么样的?Handler跟Looper,Message,MessageQueue之间是什么关系?等等,本文记录Handler需要了解的一些知识。了解一些概念。Android的消息机制:一个线程开启一个无限循环模式,不断遍历自己的消息列表,原创 2017-12-29 17:44:12 · 287 阅读 · 0 评论 -
Android 实现同个Activity中存在多个Fragment多次切换之后依次返回(二)(自维护栈的简单使用)
本文记录如何实现同个Activity中存在多个Fragment多次切换依次返回之后或者任意返回。依次返回 思路:自己定义一个栈,将我们每次显示的Fragment放到我们的栈里面,想要依次返回的时候就从栈顶开始弹栈,如果想要返回到任意Fragment的时候,就去栈中找到这个Fragment 实现这个需求需要用到Stack这个类了 首先简单介绍下Stack,首先它是继承Vector原创 2016-03-17 13:24:39 · 4499 阅读 · 2 评论 -
Android 实现同个Activity中存在多个Fragment多次切换之后依次返回(一)(Fragment回退栈简单使用)
本篇博文记录自己所用到的关于Fragment回退栈的使用什么情况会使用Fragment的回退栈什么情况会用到Fragment的回退栈,假设现在要在一个Activity上不停的切换Fragment,但是要求我们可以用安卓的返回键返回上一个Fragment这个时候就要用到Fragment的回退栈了效果图: 这个回退栈类似于安卓为Activity维护的任务栈,我们也可以通过Act原创 2016-03-15 16:26:15 · 12044 阅读 · 1 评论 -
Android ListView带CheckBox实现单选
这个应该是个经常会遇到的需求,网上找了很多的demo感觉说的有点太长于是自己抽空干脆记录一下,目前我实现listView带CheckBox单选主要用两种方法1,用一个bean记录状态,每次getView的时候去判断这个bean的状态2,判断点击的position是否跟getView的position一致,这种办法耦合性较低不建议使用效果图:第1种方法:首先是我们的bean:public class原创 2016-05-10 14:00:42 · 4916 阅读 · 2 评论 -
Android简易画板的实现
Android简易画板实现原创 2015-11-05 15:50:49 · 3986 阅读 · 0 评论 -
startActivities
每次写代码写到startActivity的时候,下面总会有一个startActivities的方法,虽然看到很多次了但一直没去研究,今天终于安奈不住写了点代码测试一下:首先startActivities需要传递一个Intent[] 参数,所以里面肯定是一个或者多个Intent测试代码XML布局文件:一共有3个Activity做测试用每个布局文件都是一样 TextView分别为Hello One,H...原创 2015-10-27 15:15:09 · 5907 阅读 · 3 评论 -
Activity启动流程( android-26)
Activity启动流程本文记录Activity的启动流程,总结自Android开发艺术探索(本文采用的是api26,开发艺术探索采用的是21有部分差入。)。 涉及知识包括AMS Binder ActivityStack Instrumentation ApplicationThread ActivityThread Handler CLassLoader 等。大致流程如下: 在日...原创 2018-03-18 13:46:02 · 2438 阅读 · 0 评论 -
Java内存模型小结
Java内存模型小结在Java虚拟机规范中定义的Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在何种平台下都能达到一致的内存访问效果,为了获得较好的执行性能,Java内存模型没有限制执行引擎使用处理器的寄存器或者告诉缓存来提升执行速度,也没有限制编译器对指令进行重排序,也就是说在Java内存模型中,也会存在缓存一致...原创 2018-08-28 17:37:03 · 570 阅读 · 0 评论 -
使用ActivityLifecycleCallbacks管理Activity
转载请注明出处:https://blog.csdn.net/xuyonghong1122APP的开发过程中有时候需要自己去管理Activity,本文记录如何使用ActivityLifecycleCallbacks来实现管理Activity的需求。什么是ActivityLifecycleCallbacks?ActivityLifecycleCallbacks是Application下的一...原创 2018-07-07 09:59:30 · 1834 阅读 · 0 评论 -
微信小程序之flex布局
微信小程序之flex布局在微信小程序中,view是最基础的布局容器,其支持两种布局方式block、flex,默认情况下,view的布局方式是block,如下所示:<view> <view style='background:red;'>1</view> <view style='background:blue;'>2<...原创 2018-06-08 11:34:27 · 22504 阅读 · 3 评论 -
Standard.kt一览
TODO@kotlin.internal.InlineOnlypublic inline fun TODO(): Nothing = throw NotImplementedError()/** * Always throws [NotImplementedError] stating that operation is not implemented. * * @param re...原创 2018-05-22 09:18:27 · 713 阅读 · 1 评论 -
利用注解实现BindView、OnClick。
利用注解实现BindView,OnClick此篇博客记录如何用annotation来实现View的自动绑定,及点击事件的绑定,不同于ButterKnife,本文采用的是Runtime注解,性能相比ButterKnife较低,ButterKnife采用的是编译注解,故性能更高。BindView声明注解以BindView为例,首先需要声明注解@Retention(Ann...原创 2018-05-17 10:29:35 · 5892 阅读 · 0 评论 -
Kotlin定义静态变量、静态方法
Kotlin定义静态变量、静态方法kotlin定义静态变量、方法可以采用伴生对象的方式。 经典例子,实例化Fragment。 java写法:public class TestFragment extends Fragment { private static final String ARG_PARAM1 = "param1"; private static fin...原创 2018-05-10 15:46:31 · 33650 阅读 · 1 评论 -
Retrofit总结(持续更新)
Get请求@query@Query会以key=value的方式拼接在url后面 Query非必填,如果请求参数非必填,可以传null 如:https://api.douban.com/v2/movie/top250?start=0&amp;amp;count=10ApiServer.kt@GET(&quot;top250&quot;)fun getTopMovie(@Query(&quot;start&am原创 2018-04-14 14:54:10 · 572 阅读 · 0 评论 -
Arouter踩坑小记
Error:Error converting bytecode to dex:不同的模块使用了相同的分组,例如 AMoudle 定义了 @router(path=”/com/a”), BMoudle也定义了@router(path=”/com/b”) 就会出现这个问题,暴露服务出现这个问题同理。...原创 2018-04-07 20:29:41 · 2108 阅读 · 0 评论 -
Java中的代理模式
Java中的代理模式代理模式的定义:对其他对象提供一种代理以控制对这个对象的访问。 形象的举个例子: 客户想买一辆车,并不是去汽车制造厂买车,而是去4s店买车,4s在充当了一个代理的角色,汽车制造厂让4s代理销售汽车。原则上说客户可以从汽车厂商直接购买汽车,但是现实生活中这种方式很少见,厂商一般会委托4S店进行销售,客户直接与4S打交道,其实4S就充当了一个中间人的角色。...原创 2018-03-06 12:19:10 · 233 阅读 · 0 评论 -
android CoordinatorLayout使用
CoordinatorLayout有什么作用CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能: 1、作为顶层布局 2、调度协调子布局 CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。CoordinatorLayout通过设置子View的 Behaviors来调度子Vi...转载 2016-04-06 14:16:56 · 7470 阅读 · 2 评论 -
Android自定义Dialog带Dialog的显示消失动画
废话不多说上效果图每次在我发博客的时候,总觉得有好多要说,但是真的要写又觉得没什么好说的,有时候说的多往往会给自己惹来不必要的麻烦,博客绝大时候还是为了记录自己的一些想法,跟心得,我也不指望有什么人看我的博客,我抽空回来往往能提醒自己要学的还有很多,在自定义一个组件之前,最好得先明白这个组件的工作原理,在之前曾发了一个自定义Toast的文章这里对于Toast就不赘述了,当一个Dialog弹出的时候,原创 2016-03-25 16:26:04 · 9914 阅读 · 0 评论 -
NoHttp之优雅的为参数签名和数据加密
NoHttp之优雅的为参数签名和数据加密NoHttp作为一个通俗易懂,简单好用的网络框架,用的人越来越多,所以大家的需求也就越来越丰富,本文主要介绍关于参数签名和加密的优雅姿势。由于大家业务不同,故本文讲述比较常规的token加密。加密规则: 所有请求按照参数key按字典顺序排序之后拼成A=a&B=b之后用MD5加密得出签名值。一,获取请求参数NoHttp获取参数的方法是Request#getPar原创 2016-11-26 14:24:08 · 23014 阅读 · 0 评论 -
TabLayout,使用小结
什么是TabLayout ? TabLayout provides a horizontal layout to display tabs.[google] TabLayout是一个用于放置水平Tab的布局你可以设置文字,icon,甚至是自定义的View原创 2016-12-02 11:19:37 · 6778 阅读 · 3 评论 -
SpannableString 你应该知道的那些效果显示
SpannableString 你应该知道的那些效果显示 转自文淑的博客前言上次看到一款学习的 App,有这样一个功能,在一个 TextView 中有一段英文,点击英文单词通过语音朗读出来。语音先不考虑,怎么去实现 TextView 点击获取每个单词的内容的呢?肯定是用SpannableString去实现的呗,不然你今天讲它干嘛。嘿嘿,我说的对不对?答案是肯定的,由于惯性我们先来看看效果图:转载 2016-11-14 17:24:12 · 1274 阅读 · 0 评论 -
Android Studio编译错误 finished with non-zero exit value 2
Android Studio编译错误 finished with non-zero exit value 2原创 2015-12-23 16:35:19 · 611 阅读 · 0 评论 -
Android开发艺术探索总结之View篇
Android开发艺术探索总结之View篇View的基础知识什么是ViewView是Android中所有控件的基类,可以说View是一种界面层的控件的一种抽象,它代表了一个控件,除了View还有ViewGroup,它被称为控件组,言外之意ViewGroup内部包含了许多控件,即一组View,在Android设计中,ViewGroup也是继承自View,这意味着View本身就可以是单个控件也可以是多个原创 2016-11-05 12:32:41 · 1135 阅读 · 0 评论 -
Error:Plugin with id 'com.github.dcendents.android-maven' not found.
Error:Plugin with id 'com.github.dcendents.android-maven' not found.原创 2016-02-16 16:10:21 · 1055 阅读 · 0 评论 -
LocalBroadcastManager基本用法
LocalBroadcastManager基本用法LocalBroadcastManager发送的广播只作用于本应用,如果不涉及到其他应用,但用到了广播的话那么用LocalBroadcastManager取代BroadcastReceiver将是明智之选,LocalBroadcastManager google官方给的解释为 Helper to register for and send bro原创 2016-10-11 20:45:17 · 964 阅读 · 0 评论 -
Android MVP模式
什么是MVP模式MVP跟MVC的区别MVP模式在Android里的应用什么是MVP模式 M : Model V : View P : Presenter MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model。 Model负责数据的处理,View负责页面的展示,而Presenter则负责完成Vi原创 2016-08-19 11:51:35 · 2016 阅读 · 0 评论 -
Android自定义Toast
今天在写PDA的时候用到了自定义的Toast比较经典于是记录一下首先看一下android的Toast的源码发现: /** * Make a standard toast that just contains a text view. * * @param context The context to use. Usually your {@原创 2015-12-29 11:01:42 · 930 阅读 · 2 评论 -
Android视图优化之Merge,ViewStub基本使用
Merge基本使用<merge/>标签用于减少View树的层次来优化Android的布局。首先演示一个没有使用Merge的layout,app运行到指定的页面后,使用“DDMS -> Dump View Hierarchy for UI Automator”1,没有使用Merge标签的布局代码:<?xml version="1.0" encoding="utf-8"?><LinearLayout原创 2016-04-05 16:44:42 · 1408 阅读 · 4 评论 -
ViewFlipper实现垂直轮播广告效果
使用ViewFlipper实现垂直滚动显示效果前言:在我还在zz做炒股软件的时候,有个需求是垂直滚动显示3指数,当时我使用了ListView的自动滚动来实现,现在一想当时做的可真费劲,又是屏蔽手势传递又是处理自动滚动,其实这种效果用ViewFlipper实现真是太简单不过了,ViewFlipper的继承关系 效果图实现代码java代码public class MainActivity extend原创 2017-01-17 15:22:53 · 3959 阅读 · 1 评论 -
Gradle多渠道打包
Gradle多渠道打包效果图 1,Manifest定义个性化标签这里以CHANNEL为例 <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundI原创 2017-10-17 10:09:10 · 614 阅读 · 1 评论 -
使用TouchDelegate扩大View的点击区域
使用TouchDelegate扩大View的点击区域 在日常开发中,经常会遇到View的触摸区域过小要求放大触摸区域的需求。 虽然在很多时候可以通过嵌套Layout来完成,但是这种方法无疑增加了布局的嵌套,本文介绍如何通过TouchDelegate来完成此功能。效果图 什么是TouchDelegateTouchDelegate官网介绍为 Helper class to handle原创 2017-08-03 15:12:34 · 1047 阅读 · 0 评论 -
轻松实现圆角图片
轻松实现圆角图片 圆角图片需求很多,教程也很多,本篇博客记录一下实现的步骤,只需要大概几十行代码即可轻松实现。实现步骤:1,使用BitmapShader给画笔着色2,绘制圆效果图: 使用BitmapShader给画笔着色BitmapShader给画笔着色就是用 Bitmap 的像素来作为图形或文字的填充 代码类似于这样的Paint mPaint = new Paint(Paint.A原创 2017-07-24 09:34:41 · 1637 阅读 · 2 评论 -
ListView侧滑删除
see 点击打开链接原创 2016-02-16 16:30:05 · 732 阅读 · 0 评论 -
Android IPC机制之AIDL的使用
本次介绍的内容如下: 1,如何启动一个外部服务 2,如何绑定一个外部服务 3,使用aidl跟外部服务进行通信准备工作:创建2个APP,一个负责装载服务,一个负责与其进行通信装载服务的APP:的包名为:package="com.maqu.ipc.android"package com.maqu.ipc.android.Service;public class APPServ原创 2016-06-05 15:39:57 · 956 阅读 · 0 评论 -
Space在Android里的应用
Space在Android里面的应用Space标签于4.0添加的,继承自View主要用于占位,google官方解释为 Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts. Space是一个轻量级的View,一般原创 2016-10-10 21:26:42 · 5428 阅读 · 1 评论