自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Android 动态获取权限

3.申请权限的fragment。4.在清单中配置权限。

2023-06-13 10:58:47 281

原创 Android 自定义标题(适用MVP框架)

之前写过一篇关于自定义标题的文章,但使用起来还是不方便,尤其是和MVP框架结合的时候。所以这次再写一篇可以与MVP框架结合的。之后相关的文章也会更新。自定义View-TitleBarMVP框架TitleBarpublic class TitleBar { /** * 默认标题栏(带后退按钮) * * @param context 上下文 * @param title 标题 * @pa.

2022-03-24 14:53:07 2489

原创 Android 设置状态栏沉浸式

public class StatusBarUtil { private static final int DEFAULT_ALPHA = 112; private static final int DEFAULT_ALPHA_NO_TRANSPARENT = 0; private static final int FAKE_STATUS_BAR_VIEW_ID = R.id.statusBarUtil_fake_status_bar_view; /** * 状

2022-03-23 11:18:08 4098

原创 MVVM框架第二篇 Navigation

一.Navigation介绍Fragment的管理是件麻烦的事,使用方法是用FragmentManager和FragmentTransaction来管理它们之间的切换,包括切换动画和数据传递等。所以Android Jetpack 提供Navigation来帮助我们管理Fragment。二.Navigation的元素Navigation Graph:新型的XML资源文件,包含应用程序的页面以及页面间的关系。NavHostFragment:特殊的Fragment,Navigation Graph的

2022-03-12 23:46:12 3419

原创 Android 软件实现开机自启动。

第一步:增加权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />第二步:定义广播public class BaseReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("android.int

2022-02-22 13:08:28 1351

原创 CountDownTimer封装

public class CountDownTimerManager { /** * 总倒计时 */ private long millisInFuture = 0; /** * 回调时间 */ private long countDownInterval; /** * 倒计时完成回调 */ private FinishCountDown finishCountDown; /**

2022-02-17 15:10:32 1599

原创 MVVM框架第一篇 LifeCycle

一.LifeCycle介绍解耦在软件开发中占据很重要的位置,正常组件在使用过程中需要依赖系统组件的生命周期。在onCreate或onResume方法初始化,在onPause中停止,在onDestroy中进行资源回收。这可能引发内存泄漏。LifeCycle为此而生,可以加强对自定义组件的管理,不依赖页面生命周期的回调方法。二.简单使用我们很多的需求都需要在onResume进行初始化,onPause进行停止。如NFC或获取地理位置等public class MainActivity extends

2022-02-12 22:53:14 1225

原创 RecyclerView分页滑动

框架RecyclerView基类封装第一步:准备工作 api 'com.android.support:recyclerview-v7:26.1.0'PagingScrollHelperpublic class PagingScrollHelper { private RecyclerView mRecyclerView = null; private MyOnScrollListener mOnScrollListener = new MyOnScrollListene

2021-10-25 11:19:12 1006

原创 根据滑动完成Activity切换

引用Activity跳转封装第一步:将OnGestureListener接口封装public class SlideListener implements android.view.GestureDetector.OnGestureListener { private Context context; private Class<? extends Activity> leftCls; private Class<? extends Activity&g

2021-10-19 11:44:00 278

原创 Android 封装okhttp3网络请求拓展

本篇只展示更新的代码,没有变化的就不贴了。上一篇 :Android 封装okhttp3网络请求更新内容:上传文件下载文件表单post请求增加时间限制JsonParsepublic class JsonParse { private Object responseBodyResult; public Object getResponseBodyResult() { return responseBodyResult; } /**

2021-09-10 14:13:59 219

原创 Android 封装okhttp3网络请求

本次封装针对get和post依赖 implementation 'com.squareup.okhttp3:okhttp:3.8.0' implementation 'com.squareup.okio:okio:3.0.0-alpha.6' implementation 'com.google.code.gson:gson:2.8.5'权限<uses-permission android:name="android.permission.INTERNET" />准备工作:R

2021-09-09 14:55:17 416

原创 【android】自定义控件动画篇之视觉动画

Android的动画由5种类型组成:alpha,scale,translate,rotate,setalpha:渐变透明度scale:渐变尺寸translate:画面变换位置rotate:画面旋转set:动画集

2021-09-05 13:50:41 319

原创 【android】自定义控件基础第三篇

一.Region1.直接构造public Region()public Region(Region region)public Region(Rect r)举例public class BasisView extends View { public BasisView(Context context) { super(context); } public BasisView(Context context, @Nullable AttributeSe

2021-09-04 10:46:22 111

原创 【android】自定义控件基础第二篇

一.RectF与Rect1.是否包含某个点boolean contains(float x, float y)根据这个可以写一个例子:绘制一个矩形,判断手指是否在范围内。public class BasisView extends View { private int mX, mY; private RectF rectF; private Paint mPaint; public BasisView(Context context) { su

2021-09-04 00:29:59 315

原创 【android】自定义控件基础第一篇

想要画出自定义控件需要画笔(Paint)和画布(Canvas)一.Paint基础使用//是否抗锯齿void setAntiAlias(boolean aa)//设置颜色void setColor(int color)//设置样式void setStyle(Paint.Style style)Paint.Style.FILL:仅填充内部Paint.Style.STROKE:仅描边Paint.Style.FILL_AND_STROKE:填充内部与描边//设置宽度void s.

2021-09-03 23:13:32 102

原创 时间工具类

@SuppressLint({"SimpleDateFormat"})public class TimeUtils { public static String COMPLETE_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; public static String DATE_FORMAT = "yyyy-MM-dd"; public static String TIME_FORMAT = "HH:mm:ss"; /** * 获取当

2021-08-24 17:50:03 77

原创 编写双击事件

public class OnDoubleClickListener implements View.OnTouchListener { private DoubleClickCallback clickCallback; private long lastClickTime; public OnDoubleClickListener(DoubleClickCallback clickCallback) { this.clickCallback = clickC

2021-08-24 17:47:41 141

原创 Activity进入退出动画

1.平移activity_next_enter<?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" android:fromXDelta="100%p" android:toXDelta="0"></translate>activi

2021-08-19 17:38:25 339

原创 定时消失弹框

准备工作1.调用参数 <!--颜色--> <color name="transparent">#00000000</color> <color name="black">#000000</color> <color name="white">#FFFFFF</color> <!--字体大小--> <dimen name="text_size_16sp">16sp

2021-08-19 11:42:04 203

原创 通用双按钮或单按钮弹框

准备工作1.颜色值 <color name="white">#FFFFFF</color> <color name="black">#000000</color> <color name="gray">#c8c7cc</color> <color name="deep_blue">#616EFD</color> <!--透明--> <color name="

2021-08-19 11:35:07 236

原创 Activity跳转封装

public class ActivityManager { /** * activity跳转不带参数 * * @param context 上下文 * @param cls 目标 */ public static void goActivity(Context context, Class<? extends Activity> cls) { startActivity(context, cls, nu

2021-08-11 14:42:48 316

原创 单例模式封装Activity管理类

public class AppManager { private Stack<Activity> activityStack; private AppManager() { activityStack = new Stack<>(); } public static AppManager getInstance() { return AppHolder.appManager; } private

2021-08-10 14:35:32 162

原创 Glide 完结篇

自定义模块大部分情况下,只需要一行代码就能加载图片。当我们需要更改默认配置时,就需要自定义模块了。首先定义自己的模块类。public class MyGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { } @Override public void registerComponents(

2021-08-09 17:30:41 120

原创 Glide 精通篇

异常日志记录 RequestListener<String, GlideDrawable> requestListener = new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean

2021-08-09 15:27:14 72

原创 Glide 进阶篇

缓存skipMemoryCache(true/false) 是否跳过内存缓存。skipMemoryCache 这就表示Glide不会将图片放到内存缓存中。默认为false,所有使用时可以不用调用。 Glide.with(this) .load("地址") .skipMemoryCache(true) .into(imageView);当跳过内存缓存时,Glide仍会使用磁盘缓存来避免重复的网络请求。

2021-08-09 11:23:45 408

原创 Glide 基本使用篇

引入依赖implementation 'com.github.bumptech.glide:glide:3.6.1'简单使用对一个完整的功能请求,Glide 建造者要求最少有三个参数。with 传入contextload 图片地址into 控件例子: ImageView imageView = findViewById(R.id.img); Glide.with(this) .load("图片地址") .into(im

2021-08-09 09:56:39 257

原创 Log工具类

public class L { private static boolean isDebug; private static String TAG = "log"; public static void init() { isDebug = BuildConfig.DEBUG; } public static void v(String msg) { if (isDebug) { Log.v(TAG, m

2021-08-06 10:01:35 169

原创 Android 封装HttpURLConnection网络请求

本次封装只对get和post。首先看一下结构

2021-07-08 14:41:17 761 1

原创 自定义View-TitleBar

title_bar.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="6

2021-06-07 17:03:32 185

原创 Android 代码添加布局

我们在工作中经常需要用到在代码中动态添加布局,之前写仿IOS底部弹出框的时候就用到了这方面的用法。仿IOS底部弹出框这次简单的写一下。activity_main<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools

2021-06-07 09:31:56 742 2

原创 自定义进度条弹框

添加百分比布局依赖 implementation 'com.zhy:percent-support-extends:1.1.1'value文件夹添加颜色值 <color name="transparent">#00000000</color><!--透明--> <color name="gary">#e8eaef</color><!--灰--> <color name="white">#FFFFFF</c

2021-05-06 16:52:37 224

原创 Android build相关用法

文章目录一.使用signingConfigs进行打包一.使用signingConfigs进行打包1.首先我们要有jks文件

2021-04-25 17:17:19 302

原创 仿IOS底部弹出框

仿IOS底部弹出框最近在公司的项目中涉及到这方面的需求,就想着封装个类。首先是资源类drawable

2021-04-24 09:00:10 453

原创 像素,键盘,文本框控制

一.dp与px之间的转行/** * 像素工具类 */public class PixelUtils { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) * @param context 上下文 * @param dpValue dp值 * @return px值 */ public static int dip2px(Context context,float dpValue){ // 获取当前手机

2021-04-17 18:23:14 161

原创 SD卡目录杂记

获取手机上的SD卡信息通过Environment类实现,该类是APP获取各种目录信息的工具。 //根目录路径 String rootAbsolutePath = Environment.getRootDirectory().getAbsolutePath(); //数据目录路径 String DataAbsolutePath = Environment.getDataDirectory().getAbsolutePath(); //下载缓存目录路径 String downloadCa

2021-04-17 10:22:17 165

原创 等待弹框使用Dialog封装

首先是相关的资源文件dialog_background<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="20dp" /> <solid android:color="@color/black" /></shape>

2021-04-17 09:48:07 144

原创 Android MD5加密

介绍MD5加密时不可逆的加密算法,也就是无法解密,主要用于客户端的用户密码加密。使用public class MD5Util { /** * 字符串加密 * * @param raw 字符串 * @return 加密后的字符串 */ public static String encrypt(String raw) { String encryptString = raw; try {

2021-03-20 18:33:29 406

原创 Android MVP框架封装

参考Android Activity与Fragment基类封装Android ButterKnife基础篇结构基本框架BaseActivitypublic abstract class BaseActivity extends AppCompatActivity implements IBaseView { /** * 获取布局文件ID * * @return 返回布局ID */ protected abstract int g

2021-03-18 15:55:36 331

原创 Android listview+RecyclerView基类封装,通用adapter之多条目封装(完结篇)

参考Android listview基类封装,通用adapter之单条目封装(进阶篇)CommonHolderpublic class CommonHolder { /** * 控件ID */ private SparseArray<View> views; /** * 视图 */ private View convertView; private CommonHolder(Context contex

2021-03-17 13:33:12 407

原创 Android listview基类封装,通用adapter之单条目封装(进阶篇)

CommonAdapterpublic abstract class CommonAdapter<T> extends BaseAdapter{ private Context mContext; protected List<T> data; private int mItemLayoutId; protected CommonAdapter(Context context, List<T> data, int mItemLayou

2021-03-16 09:57:45 138

仿ios弹框 自用 Android

仿ios弹框 自用

2023-03-30

动态获取权限,Android

自用

2023-03-28

DataRangePicker-日期区间选择器

DataRangePicker-日期区间选择器

2022-10-31

空空如也

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

TA关注的人

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