- 博客(34)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Android无障碍简单开发->模拟滑动点击输入等
似乎除了input type=password的edit text 其他所有的UI都可以进行操作。直接开始。首先配置环境。创建一个service 清单中代码如下,就算用AS直接创建,也需要配置一些权限等东西。 <service android:name=".MyAccessibilityService" android:enabled="true" android:exported="true" .
2020-05-13 09:44:46
15450
16
原创 nginx目录树美化
···location /xxx {autoindex on; # 显示文件列表autoindex_exact_size off;autoindex_localtime on;add_after_body /autoindex.html;alias xxx;}···<!-- autoindex.html 20221104 for nginx, see https://phus.lu --><script><!--var marked_js = 'http
2023-10-23 17:14:06
439
原创 2022年了Android开发的你还在用ButterKnife?kotlin-android-extensions?来试试ViewBinding吧
Android Viewbinding base类使用方法,替代butterKnife、kotlin android extensions,更快更方便完成视图绑定
2022-03-23 14:50:02
2650
1
原创 Android 动态资源ID
//利用反射机制:根据随机产生的1至5的整数从R.drawable类中获得相应资源ID(静态变量)的Field对象 Field field = R.drawable.class.getDeclaredField("prefix" + randomId); //取得图片的名称+1个随机数 //获得资源ID的值,也就是静态变量的值 即 R.drawable.xxx, int resourceId = Int...
2022-01-26 15:40:07
2402
原创 recyclerView中editText焦点乱跳问题
rv中有输入框的时候 焦点会一直跳到第一个 做列表输入的时候问题就很多解决方案:1. Activity 中(加这个可以在点击非et部分时收起键盘,如不需要则不加 看2) /** * 获取点击事件 */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { Vi
2021-12-04 10:27:38
1126
原创 css 常用效果
等分排列 display: flex; justify-content: space-between; space-around 左右 不同item之间都有等分空白 space-between 左右贴紧 仅不同Item之间有等分空白自动换行display: flex;flex-flow: wrap;/*规定自动换行的处理方法 break-all 允许在单词内换行。keep-all 只能在半角空格或连字符处换行。*/word-break: break-all; /*br.
2021-07-31 11:30:19
112
1
原创 mysql数据库常用命令
存在则更新 不存在则插入replace into xxx (x1,x2) value (xxx1 ,xxx2) 存在就把 x1 x2字段更新为xxx1 xxx2 (其他字段会重置为默认值)所修改字段需要有一个为主键存在时仅修改指定字段insert into xxx(x1,x2) value (xxx1,xxx2) on DUPLICATE key UPDATE x3=xxx,x4=xxx 意思为插入x1 x2如果其中主键存在 则更新x3 x4的值内外链接查询内连接 select ..
2021-07-26 10:54:39
89
原创 html动态添加table table 一键导出excel
创建table占位和标题 <table id="table_root" border="1" width="100%" class="tableA"> <tr> <th width="20%">姓名</th> <th width="20%">电话</th> <th width="20%">地址</th> .
2021-07-19 16:48:25
457
原创 Android 自定义viewGroup实现淘宝二楼及处理多指触控事件
前言闲来无事逛淘宝,发现首页下拉有个淘宝二楼。如下图:UI效果挺有意思,于是打算手撸一个。思路view的滚动 首先想到的就是ScrollView ,然后处理他的手势滑动事件动态的改变view的位置,即可达到效果。实现新建MScrollView继承ScrollViewpublic class MScrollView extends ScrollView {public MScrollView(Context context) { super(context);}..
2021-07-15 17:05:59
1831
3
原创 微信小程序构建npm
先把 package-lock.json,package.json,node_modules,miniprogram_npm都删干净。打开终端,执行 npm init ,全程回车,不输入任何配置信息执行 npm i vant-weapp -S --productionrv的使用npm install --save miniprogram-recycle-view要使用的page"usingComponents": { "recycle-view": "miniprogr..
2021-07-08 15:45:57
203
原创 css view居中
常规view左右居中margin : auto;text-align:center;上下居中设置上下相等的padding内部多个小view居中 display: flex; justify-content: center;需要上下居中再加上上下等值padding
2021-07-02 11:16:29
1352
原创 android progressbar indeternate
使用ProgressBar 下indeterminateDrawable <ProgressBar android:id="@+id/pb" android:layout_width="115dp" android:layout_height="115dp" android:layout_marginTop="100dp" android:indeterminateDrawable="@drawable/in.
2021-06-05 10:48:00
376
2
原创 五分钟快速生成一个供Android开发使用的依赖库
Android开发中我们常用第三方依赖,如implementation "com.squareup.okhttp3:okhttp:4.9.0" 本文主要讲述如何自己生成一个这样的库供其他人使用。配置新建一个项目,更改app下的build.gradle 把原先的com.android.application改成apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven'group='c
2021-06-01 16:51:43
286
1
原创 Android System App
Android System App所需文件app release .apkplatform.pk8 & platform.x509.pem 进入官网地址后选择你运行的对应版本 ,在后面加上路径:xref/build/target/product/进行下载signapk.jar 下载官网地址同上 目录路径 : /xref/prebuilts/sdk/tools/进行系统签名java -jar signapk.jar platform.x509.pem platform.pk8 app
2021-05-27 15:40:36
718
3
原创 Android RxJava
Android RxJava常用操作符RxJava常用操作符线程切换subscribeOn 自下而上切换所有运算的线程observeOn 自上而下切换所有运算的线程直到新的ob出现observeOn > subscribeOn 被ob过的再subOn没用subscribeOn 有多个的时候 最早指定的才生效,只能生效一次 ob可以生效多次。原因:代码的链式调用就是创建observable的过程,而且每创建一个observable,都有一个指向上一个observable的成
2021-05-21 16:44:10
114
原创 Mysql 数据库常用指令
指定某用户访问特定数据库的权限grant all privileges on DB-Name.* to name@'%' identified by 'pwd';%表示允许所有链接(远程连接) localhost本地刷新权限 一般操作完权限相关都得用这个flush privileges;允许访问所有数据库 和上面指定类似 就是用*代替具体的DB-NameGRANT ALL PRIVILEGES ON *.* TO name@"%" IDENTIFIED BY "pwd";...
2021-04-26 22:58:09
96
原创 Centos 下安装 mysql
最好在 su 下运行安装wgetyum -y install wget设置mysql 官方仓库wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmyum -y install mysql57-community-release-el7-10.noarch.rpm开始安装MySqlyum install mysql-server这个要执行较长时间至此安装完成
2021-04-21 17:18:54
108
原创 android ndk log
how to use#include <android/log.h>#definde LOG(...) __android_log_print(ANDROID_LOG_INFO, "Tag", __VA_ARGS__)int main(){ LOG("I'm log!");}log typetypedef enum android_LogPriority { ANDROID_LOG_UNKNOWN = 0, ANDROID_LOG_DEFAULT, AND
2021-02-25 11:41:46
291
原创 Android有root权限时执行shell命令
工具类:public static void adb(Context context, String adb) { if (adb.contains("adb shell")) { adb = adb.replace("adb shell", ""); } try { Process process = Runtime.getRuntime().exec("su"); DataOutpu
2021-01-25 10:54:12
1156
原创 Android 11 R 调用系统剪切图片 crop
针对android 11 intent1.setDataAndType(uri, “image/*”);,如果是7.0及以上的系统使用FileProvider的方式创建一个Uri,7一下 Uri.fromFile,不要传cut.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));//保存到uri指定的位置,指定位置就剪切不了,不指定位置 在onAcrivityResult里面data.getdata就可以获取到uri,然后用Glide.asfile就可
2020-11-20 17:13:08
3468
5
原创 setSpan 报错 IndexOutOfBounds
近期在项目开发中发现如下报错之前一直以为是SpanString的问题 一直用try - catch来处理。 @Override public void setSpan(Object what, int start, int end, int flags) { if (start == -1 || end == -1 || end > mCharSequence.length()) { return; } try
2020-10-09 14:43:25
422
原创 bottomSheelDialog不能完全展示
FrameLayout bottomSheet = (FrameLayout) findViewById(R.id.design_bottom_sheet); bottomSheet.setBackgroundColor(Color.TRANSPARENT); ViewGroup.LayoutParams originLayoutParams = bottomSheet.getLayoutParams(); originLayoutParams.height.
2020-09-14 11:20:46
298
原创 dialog全屏,但需要所在activity不全屏
dialog设置style <!--Dialog 样式 四周没有边框 加 全屏时不会有隐藏标题栏--> <style name="fullDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android
2020-07-20 10:36:12
271
原创 用户头像——图片剪切相机拍照从相册选图的坑
更换用户头像功能,拍照或者从相册选取之后剪切 然后上传。有些模拟器没有相机程序 就会导致ActivityNotFoundException所以最好try一下 Intent takePhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//启动相机 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //如果是7.0及以上的系统使用FileProvider的方式
2020-07-09 16:51:01
334
原创 解决 Can not perform this action after onSaveInstanceState的问题 多个Fragment切换导致。
今天在做新项目的时候,webview写的js interface有一个跳转到主页的第一个界面,(MainActivity里有五个fragment,通过底部自定义的导航栏,然后用hide show来实现切换)。跳转的时候突然闪退,查了相关信息由FragmentTabHost导致的Can not perform this action after onSaveInstanceState异常以及用反射改变mState来避免但是这些都有缺陷。解决方案一:关闭当前界面,然后 给mainactivity弄一
2020-07-03 09:26:13
414
原创 文字自动滚动 跑马灯 轮播
在textview标签下设置这些属性 当textview不能一行显示完的时候就会轮播 android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:scrollX="2px" android:singleLine="true" android:focusable="true" android:focusableInTouchM
2020-06-19 13:57:54
480
原创 UM集成QQ分享闪退问题
最近公司再作新项目,需要用到QQ分享和登录授权。之前用的都是jar包然后引入项目,我就去尝试了gradle里直接添加依赖的方法。 implementation 'com.umeng.umsdk:analytics:8.0.0' implementation 'com.umeng.umsdk:common:2.0.0' implementation 'com.umeng.umsdk:utdid:1.1.5.3' implementation 'com.umeng.umsdk:
2020-06-15 15:05:42
713
原创 Android 9Patch的使用
9path图片可以让某一个背景图无限拉伸而不失真, 自己制定某个区域,在图片长宽不够的时候,拿着个区域去填充空缺的区域,不管图片怎么拉伸,都不会影响。效果如图类似 QQ聊天气泡,左侧是原图,右侧分别是高度拉伸和宽度拉伸的效果,不管你发多少消息,或者换行,整体还是圆角矩形框框 +一个箭头。效果如图:制作方法很简单,**AS3.0+集成了9path编辑工具**直接在要编辑的图片上右键 就会有选项然后选择路径就好了,打开编辑,zoom是放大左侧的图,patch Scale就是变换效果 在
2020-05-27 09:54:10
459
原创 java反射机制在安卓中的使用
在安卓中 有些方法是private 或者加了@hide标记 想要调用他就不能直接通过类对象在外部调用,就可以用到反射的原理来做到。示例代码如下 MyBean myBean=new MyBean(); //创建类对象 Class<?> class1= myBean.getClass(); //获取类 Method method= null; try { //获取方法 并设置参数类型 参数类型会自己加上 不用打
2020-05-26 14:06:25
344
原创 简单易懂理解MVC MVP MVVM
此文章建议有一定了解过三种架构的大致流程后在观看。加深理解,初学者可能看不懂。这里以MVP为例,讲讲架构的核心。首先看程序结构。Model层处理业务逻辑:RealizeLogin和存放实体类:UserBeanView层存放视图:Activity、dialog、popWindows、Fragment等。Presenter层做两者沟通的桥梁。三种结构的核心区别就是视图渲染和逻辑处理这些都放在哪里进行的。像MVC,一般都是Model只放实体类,获取数据、逻辑操作,都是直接在Activity中直接写
2020-05-22 14:30:38
223
原创 安卓各种路径的区别 getExternalCacheDir()、getCacheDir()、’getExternalFilesDir()、getFilesDir()
Log.i("aa", "E "+getExternalCacheDir()+"`app:"+getCacheDir()); Log.i("aa", "E "+getExternalFilesDir(Environment.DIRECTORY_DCIM)+"`app:"+getFilesDir());getExternalCacheDir():获取外部缓存路径,一般是:/storage/emulated/0/Android/data/< packageName >/c...
2020-05-19 10:31:07
2921
2
原创 Glide加载图片到RecyclerView中采用网格布局因尺寸不同导致有空白
原因是没有给imageview设置明确的大小 解决方案方案一:拿到原图尺寸 然后加载的时候设置尺寸 public void onBindViewHolder(@NonNull ViewHolder holder, int position) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true;//这个参数设置为true才有效,
2020-05-15 16:24:27
733
1
原创 android-gpuimage滤镜中文对照
五行代码用GPUImageGitHub地址implementation ‘jp.co.cyberagent.android:gpuimage:2.0.4’ GPUImage gpuImage = new GPUImage(this); gpuImage.setImage(bitmap); gpuImage.setFilter(new GPUImageDirectionalSobelEdgeDetectionFilter()); bitmap = gp
2020-05-13 11:51:54
480
原创 安卓Android自定义视频播放器 实现无缝小窗全屏切换且不受父控件限制
用TextureView +mediaPlayer 实现mediaPlayer将textureView生成时的Surface作为播放窗口,要注意 这种方法,视频播放不能直接start 要开个线程 不然会黑屏。有声音无图画。全屏切换时,传入一个自定义播放器所在activity的activity对象,用((ViewGroup) activity.findViewById(android.R.id...
2020-04-03 17:09:53
3092
2
基于Android studio无障碍开发demo源码.zip
2020-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人