本文所讲RecyclerView 是来自support 库 26 版本,本文主要来源于自身开发及组内同事遇到问题的经验总结,作为知识沉
方式一:禁止RecyclerView滑动最直接的方式是将布局管理器中判断可滑动的方法,直接返回false,代码如下:LinearLayoutManager layoutManager
1)center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。2)centerC
重点已经画圈 /** * 获取okHttpClient * * @return the ok http client */ private final static int CACHE_SIZE_BYTES = 1024 *kHttpClient(...
根据position滑动recyclerView.smoothScrollToPosition(0);根据位置滑动smoothScrollBy( int dx, int dy )
核心 android:maxEms="100" android:maxLines="4" android:ellipsize="end"<TextView android:id="@+id/cof_content_tv" axEms="1
Glide里的缓存默认情况下,Glide 会在开始一个新的图片请求之前检查以下多级的缓存:活动资源 (Active Resources) - 现在是否有
本文不是与大家一起探讨SharedPreference的基本使用,而是结合源码的角度揭秘对SharedPreference使用不当引发的严重后果以及该如何正确使用。SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了string,set,int,long,float,boolean六种数据类型。最终数据是以xml形式进行存
如何知道一个App的包名呢?它的启动页的Activity又是什么呢? 包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同。 例如我可以自己编译生成一个App也叫“微信”,但是我App的包名不能为com.tencent.mm(微信的包名为这个),如果我指定的包名如果也和微信一致了,那么我的手机上只允许安装这两个A
下面介绍的是实现右进右出一、在res下新建一个anim文件夹(有了就不用新建了)1、新建in_from_right.xml<?xml version="1.0" enco
通过反复测试比较靠谱的就是google提供的api 使用分辨率识别多少寸的的那个现在压根就不准确/** * 判断当前设备是手机还是
效果图一、在layout下创建布局 dialog_help.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://sut_width="match_parent"...
创建一个BaseActivity让每个activity继承这个Activity然后实现下面的两个方法就可以了 @Override public boolean dispatchTou
TabLayout+ViewPager实现Android底部滑动项目介绍软件架构代码实现介绍项目介绍通过Tablayout+ViewPager实现底部滑
有点好用的东西分享给大家官网: https://airbnb.design/lottie/安卓和IOS的动画用lottile来制作简单的和“1”一样Lottie是什么?Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。这么看可能很难理解,接下来我将详细的讲解如何使用。 Lottie项目地址:http
一、资源文件保护二、Activity和Service越权检测修改export=false三、Activity劫持检测处理检测app进去后台的时候提示用户 也就是在onPause的时候/** * Is foreground boolean. * * @param context the context * @return the boolean */
使用AndResGuard对资源进行混淆一、打开项目工程下的build.gradle二、新增classpathclasspath 'com.tencent.mm:A
前言: ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目
携带获取失败处理 /** * 当前的mac地址 * * @return String mac */ @SuppressLint("HardwareIds") private static String getMacAddress() { try { WifiManager wifiMan = (W...
/** * 当前ip地址 * * @return String ip */ private static String getIpAddress() { try { WifiManager wifiManager = (WifiManager) MyApplication.getAppContext...
下面是使用介绍必须放到setContentView前面 /** * 隐藏虚拟按键,并且设置成全屏 */ protected void hideBottomUIMenu() { if (Build.VERSION.SDK_INT >= 19) { //for new api versions. ...
/** * 监听返回键 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCON_DOWN) {...
进程保活参考:https://www.jianshu.com/p/53c4d8303e19https://github.com/08carmelo/android-keeplive其实点击参考的链接里面说了技术点 以上地址这个我是通过鸿洋的公众号看到的,我们公司做的是VPN拨号必须要求的应用程序保持后台运行,上面链接中介绍的很详细,我的部分保活就用的上面说的,毕竟是鸿洋大神推荐出来的,我
效果图这块是我的button控件因为我全局很多地方都用然后我在style里面新建了一个buttons的样式 颜色高度都是自己配置<Button android:id="@+id
https://github.com/MAXIAODONGS/dimens.git文件比较多只能上传github这个文件已经线上使用一年多,上线过程发现目前兼容imens/dp1等希望对你有帮助...
实现是先校验位数然后再校验身份证号码每个数字代表的作用是否正确(就是工具类中介绍的)校验成功还需要校验1-17位相乘
实现安卓重启使用RestartAPPTool.restartAPP(MyApplication.getAppContext());工具类import android.annotation.SuppressLint;import an
检测的代码private void checkIMSi() { boolean simStateBySlotIdx = SimUtils.getSimStateBySlotIdx(this, 0); boolean simStateBySl
/** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * * @return 平板返回 True,手机返回 False
使用介绍TimerCount timer = new TimerCount(60000, 1000, code); timer.start();工具类代码import android.os.Cot com.xinli.wenet.base...
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号