![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
凌云志 !
记录Android开发中的点点滴滴,帮助自己记录,也帮助需要的朋友解决问题.
展开
-
Android 获取app(apk)签名
Android 获取app签名原创 2023-06-05 10:51:47 · 3527 阅读 · 0 评论 -
Android 和dialog 防录屏功能失效,游戏防录屏功能失效.
Android或游戏禁止录屏失效.原创 2022-11-10 10:57:06 · 2156 阅读 · 0 评论 -
Android Bitmap 缩放
Android Bitmap 缩放原创 2022-11-05 10:32:24 · 2659 阅读 · 0 评论 -
Android akptool 安装 mac 电脑
Mac电脑安装apktool原创 2022-11-01 19:03:33 · 645 阅读 · 0 评论 -
华为手机WebView全屏重写onShowCustomView()白屏问题
最近使用webView开发网页游戏时发现一个现象, 网页会主动调用全屏,他通过视屏全屏的方式来实现,就是调用onShowCustomView()方法.我在给webView设置setWebChromeClient()时,重写了onShowCustomView()方法,所以导致白屏,用户手动返回即可消失,但白屏问题必须解决,下面有两个方法测试可解决.解决方法一:把onShowCustomView()删除,不重写该方法即可,不会出现白屏.方法二:在super之前发送主线程,调用onCustom原创 2022-05-19 19:09:28 · 1333 阅读 · 0 评论 -
Android Button 影藏阴影部分,去除背景或边框
之前设置的最大SDK兼容是22,按钮显示是正常的:布局是两个Button,设置的 drawableTop 图片,之后适配到安卓11,发现按钮出现了很明显的黑框和阴影部分:Button是已经设置了background的,可是任然无法影藏,有两个办法可以解决:1.给button自定义style时,在values-v21下面的style中添加一条属性,<!--去掉button背景色和边框,高版本按钮会有黑色阴影框--><item name="android:out原创 2021-07-01 16:31:18 · 2799 阅读 · 1 评论 -
资源或ID存在,但是编译运行却报错找不到资源问题解决.No resource found that matches the given name
/layout/dk_dialog_errornotice.xml:16:38-60: AAPT: No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/bd_notice_toptitle').报错中的id位置找到后,发现是存在的,并没有丢失,但系统却 说找不到.看下图代码:让View在TextView的左边, View在识别的时候却找不到 bd_notice_toptitl.原创 2021-05-18 15:39:28 · 573 阅读 · 0 评论 -
Android Fragment中监听返回按键
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //监听返回键 getView().setFocusableInTouchMode(true); getView().requestFocus(); get.原创 2020-12-31 16:23:57 · 955 阅读 · 0 评论 -
文件存储之:File,Cache,Sdcard,三种存储方式
//canche存储数据,记得添加sdcard的读写权限File file = new File(getCacheDir(), "cache.text");try { FileOutputStream fo = new FileOutputStream(file); fo.write("这是cache存储的缓冲信息".getBytes()); fo.close();原创 2017-08-13 21:18:12 · 2301 阅读 · 0 评论 -
Android 或 Java中“&“ 和 “&&“ 以及 “|“ 和 “||“的区别
使用与(& , &&)操作的时候,要求前后几个表达式的内容都是true,最终结果才是true,如果有一个是false,则最终结果就是false;使用或( |, || )操作的时候,要求前后几个表达式只要有一个true,则最终结果就是true,如果全都是false,则最终结果才是false;& 和 &&的区别如果使用双与(&&),只要第一个结果是false,则整体结果肯定是false,但是程序在这个时候是不会继续执行下去的;如果使用原创 2020-12-15 10:45:15 · 3791 阅读 · 0 评论 -
Android Studio 3.4.1版本生成Jar包和混淆Jar包方法
Android Studio 每个版本生成的方法都不相同.1.首先生成jar包:task makeJar(type: Jar, dependsOn: ['compileReleaseJavaWithJavac']) { destinationDir = file('build/libs/jar/')//jar包保存位置 baseName =test // Jar名称 from('build/intermediates/javac/release/compileRelea原创 2020-12-11 14:50:59 · 530 阅读 · 2 评论 -
Android Studio 3.0版本出Jar包或出混淆Jar包
Android Studio 各个版本出jar包的命令都不一样,所以这里记录一下Android Studio 3.0版本出包的两种方法:方法一(简单):整个工程全部出jar包1.首先在需要出jar包的library或module项目下找到 build.gradle文件,在最下面直接添加task任务://AS 3.0 编译出build/intermediates/bundles/release/下的classes.jar包,并且完成出jar包//dependsOn 就是代替手动去点击右侧gra原创 2020-12-11 11:57:42 · 2367 阅读 · 2 评论 -
Android中View的getMeasuredHeight()与getHeight()属性的区别,getMeasuredWidth()与getWidth()属性的区别
正常情况使用getMeasuredHeight()与getHeight()或getMeasuredWidth()与getWidth()得到的值是相同的.getMeasuredHeight()和getMeasuredWidth()得到的值是在自定义控件重写onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法时,调用setMeasuredDimension(int measuredWidth, int measuredHeight)设置的值.如果此原创 2020-10-15 17:23:29 · 1389 阅读 · 0 评论 -
Android->Activity四种启动模式详解和onNewIntent调用时机
Activity四种启动模式详解::1. standard默认启动模式,每次激活Activity时都会创建Activity,并放入任务栈中,永远不会调用onNewIntent()。2. singleTop如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,并调用其onNewIntent(),否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例,而不会调用onNewIntent(),此时就跟standard模式一样)。3. sin原创 2020-09-01 10:52:32 · 754 阅读 · 0 评论 -
java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder或retrofit2.BuiltInConverters
android studio 中 java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder错误解决或java.lang.NoClassDefFoundError: retrofit2.BuiltInConverters错误解决方法此问题在android5.0以上不会出现,在android4.0-4.4会出现。引起该问题的原因是:...原创 2020-05-08 16:16:09 · 1129 阅读 · 0 评论 -
Android Studio 出现:Unable to resolve dependency for ':app@debug/compileClasspath'
Android Studio 3.0 以后 gradle升级4.1 之后倒入之前的老工程就会提示下面这个错误:Unable to resolve dependency for ':app@debug/compileClasspath'xxx解决办法两个,最简单的就是方法一方法一:settings->Build, Execution, Deployment->G...原创 2019-10-30 12:02:30 · 820 阅读 · 0 评论 -
Android Studio最完整的插件整理
现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Ins...转载 2019-10-29 16:04:23 · 482 阅读 · 0 评论 -
Android Studio 提升效率和性能必看,使用前最常用配置集合
我们在使用android studio前一定会根据自己的个性去求进行各种设置。这里我将贴出一些我使用as中遇到的比较方便以及基本的一些设置。1,点开as之前应该做的事很多人一定会在这个界面卡顿很久,其实这是as在检测更新。所以我们在点开as之前先修改它的配置文件,让它不再更新。找到你安装as的目录,进入bin文件夹找到idea.properties文件,如图:右键编辑,在最...原创 2019-10-29 15:36:44 · 1939 阅读 · 0 评论 -
RecyclerView滑动到底部的时候点击按钮直接返回顶部
//滑动监听,当条目滑动一定程度的时候让返回顶部的按钮显示recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { ...原创 2019-07-19 11:38:58 · 576 阅读 · 0 评论 -
nginx 模拟服务器搭建和使用
首先把Nginx-1.8.0解压,路劲中不能带有中文;我的路径直接解压到E盘(E:\nginx-1.8.0);使用EditPlus打开nginx.bat, 把SET NGINX_DIR=修改成你自己实际的路径;我的是(SET NGINX_DIR=E:\nginx-1.8.0\);2.打开conf文件夹下的nginx.conf,找到server{},修改server_name 我把原来的修改成...原创 2019-07-22 11:41:13 · 421 阅读 · 0 评论 -
Android中Activity的isTaskRoot()方法使用和原理
App打包apk安装后重复启动根界面的问题这个问题很特殊,一般情况下很难被发现,是Android系统一直以来的一个Bug。当我们把app打包成apk安装程序,通过点击apk文件进行安装时,会启动安装界面,并在安装成功后会跳转安装完成界面,如图:安装完成界面我们点击图中的打开按钮,此时会启动我们的app这里为了让大家更容易理解一些,我们假设app有两个界面启动界面Spla...原创 2019-08-06 16:59:32 · 3874 阅读 · 0 评论 -
输入框(EditText)限制输入一行文字,限制输入内容和长度
<EditText android:id="@+id/EditText" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_marginLeft...原创 2019-08-07 17:37:36 · 3281 阅读 · 3 评论 -
Android 设置5.0以后出现的虚拟按钮背景颜色
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置虚拟按键的背景颜色 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIP...原创 2019-08-07 17:54:02 · 739 阅读 · 0 评论 -
Android 通知(Notification)兼容到Android Q,以及使用中的bug
/** * 安卓8.0以后创建通知需要做兼容 * channelId 要唯一,自定义即可,如 "进程销毁通知","TestNotification","FirstServiceNotification",自定义即可 * 创建包含内容的通知,点击通知跳转LoginActivity * 第一个参数是Context 的时候不能置为前台进程,只能发送通知等操作 ...原创 2019-08-13 11:25:40 · 2019 阅读 · 0 评论 -
Android实现点击通知栏后,先启动应用再打开目标Activity
情况简述在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity。目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况:app正在运行 app已退出对于第一种情况...转载 2019-08-13 10:18:36 · 1739 阅读 · 0 评论 -
Android 利用Gradle脚本删除jar包,资源和AndroidManifest.xml文件中的配置
今天有一个渠道有一个特别的要求,先接入他们的母包SDK,母包SDK调通登录以后,把母包的一些jar包,assets下的资源和文件,还有在AndroidManifest.xml中配置的activity,service,meta-data等全部删除.于是就使用Gradle脚本命令在打包的时候执行删除命令,具体代码如下:然后就是在build.gradle中最下面开始写命令执行删除任务:1...原创 2019-08-26 18:37:15 · 2653 阅读 · 1 评论 -
android集成第三方微信登录
第一步:在微信开放平台创建安卓应用,需要输入的包名和签名就不用再提吧,不知道的自行百度。应用创建完毕后会得到两个值:AppID、AppSecret,用这两个值来请求微信。然后去微信开放平台的资源中心 ,选择安卓资源包 ,如图:注意:输入的包名和签名要和项目中的一致!第二步:将安卓资源包中的libammsdk.jar 导入到项目中的libs文件夹下面。并在项目中的创建一个...原创 2019-07-22 11:40:38 · 732 阅读 · 0 评论 -
上下两行按钮上下平移动画
if (isChecked) {isChecked = false;ObjectAnimator rotation = ObjectAnimator.ofFloat(hiddenBtn, "rotation", 0, 180);rotation.setDuration(600).start();ValueAnimator animator = ValueAnimator.ofFloat(0...原创 2019-07-22 11:40:03 · 330 阅读 · 0 评论 -
Activity横屏显示,属性详解
<activity android:name=".MainActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="sensorLandscape"> <intent-filter> <a...原创 2019-07-22 11:39:32 · 424 阅读 · 0 评论 -
Android 通讯录的实现,根据拼音首字母快速索引到名字
导入依赖,或者自行百度下载jar包 compile 'com.belerweb:pinyin4j:2.5.0'一、创建布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android...原创 2019-07-19 11:47:48 · 1078 阅读 · 0 评论 -
二级列表完美实现购物车
public class MainActivity extends AppCompatActivity { private ExpandableListView listview; private MyAdpater adpater; private TextView checked_shop; private TextView price; @Ove...原创 2019-07-19 11:47:06 · 313 阅读 · 0 评论 -
自定义标题栏(左中右三块)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http:...原创 2019-07-19 11:44:18 · 483 阅读 · 0 评论 -
android格式化通讯录
//必须导包compile 'com.github.promeg:tinypinyin:2.0.1' // TinyPinyin 核心包,约 80KBcompile 'com.github.promeg:tinypinyin-lexicons-android-cncity:2.0.1'//MainActivity的布局<?xml version="1.0" e...原创 2019-07-19 11:41:16 · 396 阅读 · 0 评论 -
纵向的ListView或RecyclerView点击都可以让item跳到中间(类似TabLayout的滑动)
这里使用的是RecyclerView不是listview,原理一样recyclerview.setOnItemClickListener(new FM_FenLei_LeftAdapter.OnItemClickListener() { private int childCount = 0; private int middlechild = 0; @Overr...原创 2019-07-19 11:39:28 · 399 阅读 · 0 评论 -
购物车二级列表的完美实现
这是在Fragment中实现,自己使用的地方根据自己需求来定义public class Fragment_GouWuChe extends Fragment { private View view; private GWC_dao dao; private ExpandableListView EX_listview; private TextView n...原创 2019-07-19 11:38:25 · 359 阅读 · 0 评论 -
图文混排
//SpannableString 不需要导入任何的依赖public class MainActivity extends AppCompatActivity { private TextView textview; @Override protected void onCreate(Bundle savedInstanceState) { supe...原创 2019-07-19 11:37:51 · 274 阅读 · 0 评论 -
自定义RadioButton小圆点,viewpager滑动改变颜色
//添加小圆点,根据你数据data的大小来定义个数 for (int i = 0; i < data.size(); i++) { View view = new View(this); //重新设置view的大小 LinearLayout.LayoutParams layoutParams = new LinearLayout.Lay...原创 2019-07-16 19:43:59 · 413 阅读 · 0 评论 -
反编译使用方法
apktool 使用:进入apktool这个文件夹,复制路径,cmd打开命令窗口:1.E:2.cd apktool文件夹里面程序路径(E:\apktool)3.apktool.bat d -f Test.apk test(这个名字自定义,就是解压出来的文件夹的名字)4.打开test这个自定义的文件夹,就可以把apk这个安装包里面的代码反编译出来dex2jar-0.0.9.15和jd-g...原创 2019-07-16 19:42:15 · 1050 阅读 · 0 评论 -
RecyclerView使用,item实现全选,反选,单选,计算checkbox选中的个数
activity_main.xml 布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" ...原创 2019-07-16 19:41:34 · 1025 阅读 · 0 评论 -
git 常用命令
查看分支 git branch创建分支,并切换到该分支下: git checkout –b XXX(你要创建的名字) 如 git checkout –b zhang创建分支 git branch xxx(你要创建的名字) 如 git branch zhangsan删除非当前分支 git branch –d xxx(你要删除的分支名字) 如 git branch –d zhangsan合并数...原创 2019-07-16 19:40:52 · 68 阅读 · 0 评论