- 博客(123)
- 收藏
- 关注
原创 Android 打包32位和64位兼容包
在app下的build.gradleandroid { defaultConfig { ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips","x86_64" } sourceSets { main { jniLibs.srcDirs = ['libs'] }
2022-04-28 19:29:26
11733
原创 Android 计算两个时间戳之差(天/时/分/秒)
//获取结束的时间戳 long expirationTime = data.getExpirationTime(); //获得当前时间戳 long timeStamp = System.currentTimeMillis(); //格式 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH...
2022-04-06 09:55:44
6294
原创 Android 省市区街道 四级联动
原文地址 :github地址 :四级联动(省、市、区、镇)的地区选择器json城市数据 :json城市数据,最新更新时间2021/10/31在此基础上 做了相应的更改import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;imp...
2022-04-02 17:00:34
3763
原创 Android 解决https请求信任证书问题
import java.security.SecureRandom;import java.security.cert.CertificateException;import java.security.cert.X509Certificate;import javax.net.ssl.HostnameVerifier;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import javax.net.ssl.SSL.
2022-03-15 09:51:37
760
原创 Android 添加请求头
import java.util.concurrent.TimeUnit;import okhttp3.Interceptor;import okhttp3.OkHttpClient;import okhttp3.logging.HttpLoggingInterceptor;import retrofit2.Retrofit;import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;import retrofit2.converter.
2022-03-15 09:46:59
1958
原创 Android Fragment懒加载
直接让其他 fragment 继承就行/** * Fragment预加载问题的解决方案: * 1.可以懒加载的Fragment * 2.切换到其他页面时停止加载数据(可选) */public abstract class LazyLoadFragment extends Fragment { /** * 视图是否已经初初始化 */ protected boolean isInit = false; protected boolean isLoad
2022-02-22 17:12:45
1039
原创 Android RecyclerView 分页加载
1.布局文件<?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="match.
2022-02-22 17:09:12
2975
原创 Android 拦截器判断Token是否过期
public class TokenInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); Response response = chain.proceed(request); ResponseBody respo.
2022-02-21 14:39:01
2483
原创 Android 判断fragment是否可见
/** Fragment当前状态是否可见 */protected boolean isVisible;@Overridepublic void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if(getUserVisibleHint()) { isVisible = true; onVisible(); } .
2022-02-12 14:37:19
1691
原创 Android 防止快速点击
ClickUtilpublic class ClickUtil { // 两次点击按钮之间的点击间隔不能少于1000毫秒 private static final int MIN_CLICK_DELAY_TIME = 1000; private static long lastClickTime; public static boolean isFastClick() { boolean flag = false; long cur.
2021-12-17 16:47:00
1131
原创 Android 自定义SharedPreferences
SpUtilsimport android.content.Context;import android.content.SharedPreferences;import android.text.TextUtils;import android.util.Base64;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import ja.
2021-12-08 15:16:28
291
原创 Android 网络监听&&网络判断
一、在AndroidMainfest.xml中添加权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.INTERNET" />二、NetUtilSS 网络判断工具类import android.app.Activity;import android.app.Alert
2021-12-08 14:24:48
2895
原创 Android 屏幕适配(autosize)
一、在build.gradle中添加依赖dependencies { ...... //屏幕适配 api 'me.jessyan:autosize:1.1.2'}二.在AndroidManifest.xml中填写设计稿的尺寸<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"
2021-11-27 16:13:28
553
原创 Android 解决(滑动Recyclerview列表时,顶部和底部的阴影)
//取消顶部底部阴影recyclerview_id.setOverScrollMode(View.OVER_SCROLL_NEVER);
2021-10-12 15:51:22
1013
原创 Android 校验手机号( 正则表达式 )
public class PhoneNumberUtils { //校验通过返回true,否则返回false public static boolean isMobile(String mobile) { String str = mobile; String pattern = "^(13[0-9]|15[012356789]|17[013678]|18[0-9]|14[57]|19[89]|166)[0-9]{8}"; Pattern.
2021-08-23 14:57:06
1302
原创 Android 禁止Tablayout横向滑动
public class MyViewPager extends ViewPager { private boolean scroll = true; public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeSet attrs) { super(context, attrs); } .
2021-08-23 14:46:50
1278
原创 Android 滑动页面,状态栏变换(背景色/字体颜色)
MyScrollViewpublic class MyScrollView extends ScrollView { private OnScrollListener listener; public void setOnScrollListener(OnScrollListener listener) { this.listener = listener; } public MyScrollView(Context context) { .
2021-08-18 10:36:30
683
原创 Android 网格列表后添加一条数据( 多条目 )
直接看适配器public class GiftbgmoreAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ private Context context; private List<GroupPersoninfoBean.Data.List> list; public GiftbgmoreAdapter(Context co...
2021-08-18 10:16:27
263
原创 Android 多个域名自动切换
创建一个拦截器判断当前API使用哪个域名MoreBaseUrlInterceptorpublic class MoreBaseUrlInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { //获取原始的originalRequest Request originalRequest = cha
2021-08-18 10:05:20
1742
原创 Android 登录成功后保存用户Token
SpUtils 用于保存数据public class SpUtils { private static SharedPreferences sp; private static SharedPreferences getSp(Context context) { if (sp == null) { sp = context.getSharedPreferences("SpUtil", Context.MODE_PRIVATE); .
2021-08-18 09:40:46
4079
1
原创 Android 自定义Toast (样式) , 多次点击只显示一次
ToastCustom工具类/** * 自定义Toast */public class ToastCustom { private boolean canceled = true; private Handler handler; private Toast toast; private TimeCount time; private TextView toast_content; private static ToastCustom i.
2021-07-24 16:04:14
345
1
原创 Android 透明状态栏
WindowUtilsimport android.annotation.TargetApi;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.os.Build;import android.view.View;import android.view.ViewGroup;import android.view.Window;im.
2021-07-14 15:50:41
970
原创 Android 加载webview页面
XML<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_w
2021-07-14 15:44:21
818
原创 Android 解决启动页白屏问题
在style中创建<style name="FullScreenTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="windowNoTitle">true</item></style>在清单文件中 给启动..
2021-07-14 15:33:18
231
原创 Android Recyclerview 左滑删除
1.先创建一个工具类SlideRecyclerViewpublic class SlideRecyclerView extends RecyclerView { private static final String TAG = "SlideRecyclerView"; private static final int INVALID_POSITION = -1; // 触摸到的点不在子View范围内 private static final int INVALID..
2021-07-05 15:52:34
1692
4
原创 Android 视频播放器:展示列表视频(HeartVideo)
1.配置在project下 build.gradle中添加allprojects { repositories { ...... maven { url 'https://www.jitpack.io' } }}在app下 build.gradle中添加dependencies { ...... implementation 'com.github.zhanglinkai:HeartVid...
2021-06-20 17:46:30
2839
11
原创 Android 保存图片到本地相册
1.先创建一个工具类SaveImageUtilspublic class SaveImageUtils { public static void saveImageToGallery(Context context, Bitmap bmp) { // 首先保存图片 File appDir = new File(Environment.getExternalStorageDirectory(), "Boohee"); if (!appDir.exi
2021-06-17 10:30:53
4324
5
原创 Android UniversalVideoView视频播放器
1.添加依赖 app下的 build.gradledependencies { ...... compile 'com.linsea:universalvideoview:1.1.0@aar'}2.XML布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-...
2021-06-16 15:44:47
281
1
原创 Android ProgressBar进度条
1.XML布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:textSize="20sp" android:layout_marginTo..
2021-06-16 11:07:32
377
原创 Android 跳转Activity的动画
在 res文件夹下创建anim文件夹创建文件push_right_in.xmlpush_left_out.xmlpush_left_in.xmlpush_right_out.
2021-06-16 10:46:29
135
转载 Android Loading加载动画
1.创建一个工具类LoadingDialogpublic class LoadingDialog extends Dialog { private ImageView iv_ing; private AnimationSet animationSet; private static LoadingDialog instance; public static LoadingDialog getInstance(Context context) { ..
2021-06-16 10:33:42
7068
7
原创 Android SmartRefreshLayout下拉刷新 上拉加载
1.添加依赖 app下的 build.gradledependencies { ...... implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3' implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.0.3'//没有使用特殊Header,可以不加这行 implementation 'com.android....
2021-06-15 17:19:27
538
原创 Android 历史搜索记录(Flowlayout)
在app 的 build.gradle下添加依赖dependencies { ..... api 'com.hyman:flowlayout-lib:1.1.2'}XML<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="h..
2021-06-11 17:32:50
460
原创 Android Fragment预加载和懒加载
fragment预加载 懒加载viewpager有着预加载机制:默认一次加载当前页面前后两个页面,即使设置setOffLimit(0)也没有效果。 虽然预加载优化了app的体验效果,但是这样把我们看不到的页面的数据也加载了,大大降低了性能,浪费初始化资源。什么是懒加载:懒加载的定义。 当页面可见的时候,才加载当前页面。 没有打开的页面,就不会预加载。 说白了,懒加载就是可见的时候才去请求数据。主要的方法是Fragment中的setUserVisibleHint(...
2021-06-09 16:47:32
2639
原创 Android 消息通知滚动
垂直滚动 和 水平滚动创建一个工具类CustomTextSwitcher/** * * 公告新闻切换 * * Wetchat : ljphhj * Github : https://github.com/xiaoyaomeng * Autor : lijiangping */public class CustomTextSwitcher extends TextSwitcher implements ViewSwitcher.ViewFactory { private Co
2021-06-07 14:45:39
1035
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人