自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

侠亦狐的博客

主要发布Android相关博客

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android Studio插件在线、离线安装以及常用插件推荐

安装插件的方法:1、在线安装:设置Setting里面检索plugins:然后就可以搜索插件名称以及安装了。2、离线安装:上图顶部Updates右边那个设置图标:选择下载好的离线插件导入即可(下载好的插件不用解压)。附上插件下载官网:https://plugins.jetbrains.com/插件推荐:1、GsonFormat快速...

2020-01-08 16:53:25 4276

原创 Android:用DialogFragment实现LoadingDialog等待加载框

1、先搞好一个等待框的布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android...

2020-01-07 18:38:18 3279

原创 腾讯bugly集成步骤

集成步骤:1、登录腾讯bugly,创建应用,记下appid,待会要用到2、依赖://腾讯Bugly。其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0implementation 'com.tencent.bugly:crashreport:latest.release' 最新版版本号可前往这里查看:https://bugl...

2019-11-15 18:36:11 2048

原创 RecyclerView高度撑满ScrollView

两步: 把ScrollView换成android.support.v4.widget.NestedScrollView recyclerview.setNestedScrollingEnabled(false); 收工。

2019-11-09 16:27:54 1322

原创 Rxjava+Retrofit2上传文件带参数:参数自带引号问题解决

上传文件没问题。上传图文,也就是上传文字和图片的时候,用以下这个代码:@Multipart@POST("xxxxx/images/")Flowable<UpImgAndTextBean> upLoadImgAndText( @Part("title") String title, ...

2019-11-09 16:21:52 1413

原创 Android跳转到拨号界面,并且把号码带过去

Intent intent = new Intent();intent.setAction(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:"+需要带过去的电话号码));startActivity(intent);

2019-11-09 16:08:27 2042 6

原创 java:try-catch后写不写finally的区别

相信有小伙伴跟我一样写finally和不写finally,try完或者catch完之后,一样会往后执行,那么写finally的意义何在呢?我先来给出我理解的答案:finally是防止try里面有return语句而发生catch没及时关闭一些东西。经测试,我们发现:try里有return,并且执行到了,也会先把finally执行完再return。而不写finally则直接...

2019-09-24 12:33:24 3768

原创 java中比较两个数组中的元素是否相同

String [] array1 = {"1","2","3"}; String [] array2 = {"3","2","1"}; Arrays.sort(array1); Arrays.sort(array2); if (Arrays.equals(array1, array2)) { System.out.println("两个数组中的元素值相同"); ...

2019-09-24 12:18:50 3966

原创 java:文本、图片的复制粘贴

1、复制文本(把文本放入剪切板中):public void copyTxt(String s){ //获得系统粘贴板 Clipboard clipboard = getToolkit().getSystemClipboard(); //建立一个粘贴板内容实例 StringSelection textInfoSelected = new StringSe...

2019-09-24 12:14:09 1305

原创 java:通过反射实现泛型的实例化(T t = new T())

public D newD(){ D newD; try { // 通过反射获取model的真实类型 ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); Class<D&gt...

2019-09-24 12:02:25 8861 2

原创 BigDecimal加减乘除运算

BigDecimal b1 = new BigDecimal(); BigDecimal b2 = new BigDecimal();加法:b1.add(b2)减法:b1.subtract(b2)乘法:b1.multiply(b2)除法:b1.divide(b2)除法四舍五入:b1.divide(b2, len,BigDecimal.ROUND_HALF_UP)...

2019-09-24 12:00:06 2503

原创 java:字符串某个位置插入一个字符串

StringBuffer sb = new StringBuffer("原字符串");sb.insert(index,"需要插入的字符串");

2019-09-24 11:54:03 4631 3

翻译 Java中的String,StringBuilder,StringBuffer三者的区别

1、首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:  String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。2、再来说线程...

2019-09-24 11:51:26 87

原创 Android:H5、web调起App并且传递参数

1、在清单文件的Activity声明里添加:<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category andr...

2019-09-24 11:38:54 2962 1

原创 Android最简单的倒计时:CountDownTimer

原理:内部封装了handler使用:CountDownTimer mCountDownTimer = new CountDownTimer(3000, 1000) { @Override public void onTick(long millisUntilFinished) { String value = String.valueOf((i...

2019-09-24 11:31:08 816

原创 Android权限申请:自带方法 + 第三方库实现

Android自带权限申请方法:1、权限申请:(第二个参数0是requestCode):String [] permission = {Manifest.permission.ACCESS_FINE_LOCATION};if(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManag...

2019-09-24 11:26:48 3482

原创 Android实现重写父类方法必须调用父类该方法

实现效果:子类中重写init方法,必须使用super.init()调用A类的init方法,否则编译不通过。1、父类A:(你定义的类,供别人继承)class A{ public void init(){ //do something for class A }}2、子类B:(别人的类,继承你的类A)class B extends A{ ...

2019-09-09 14:21:06 3480

原创 Android NDK:JNI开发之Java调用C、C++方法:Hello word

首先下载好对应的NDK,解压目录配置到Android Studio项目下的local.properties:ndk.dir=C\:\\Users\\aibo\\AppData\\Local\\Android\\Sdk\\ndk-bundlesdk.dir=C\:\\Users\\aibo\\AppData\\Local\\Android\\Sdk方式一:新建项目时选择最后一个...

2019-09-05 12:09:08 547

原创 Android利用WindowManager实现悬浮窗

不废话,四步走:1、首先要声明悬浮窗口权限:<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>2、引导用户打开悬浮窗...

2019-09-05 11:39:17 1298

原创 Android实现无界面无图标App最简单的方式

背景:有时候你的app只需要一个服务来做一些辅助功能,需要实现以下两个特点:没有界面 图标在不桌面上显示两步走:1、 MainActivity声明中去掉category: <activity android:name=".MainActivity"> <intent-filter> ...

2019-09-05 11:12:04 13710 1

原创 Android7.0快捷图标:Quick Settings Tile

实现效果:其实很简单,实现过程:1、写一个服务继承TileService,里面实现四个方法:public class MyTileService extends TileService { final String LOG_TAG = "MyTileService"; @Override public void onTileAdded() { ...

2019-09-05 10:46:08 2919 2

原创 Android调用自带TTS文本转语音引擎实现离线语音合成

只要手机带有语音助手的话一般就会存在中文语音引擎,如果没有的话需要额外下载中文的语音引擎,不然不支持中文。开工,第一步,初始化:private TextToSpeech tts;tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() { @Override public void onInit(i...

2019-09-04 11:18:39 5558

转载 Android Activity的四种启动模式和使用场景

Activity的启动模式有四种:standard singleTop singleTask singleInstance1、standard:标准模式标准模式下,只要启动一次Activity,系统就会在当前任务栈新建一个实例使用场景:正常的去打开一个新的页面,这种启动模式使用最多,最普通2、singleTop:栈顶复用模式1、当前栈中已有该Activi...

2019-09-03 12:05:44 1151

原创 利用webView实现js与Android方法互调

举例:获取第一个img元素的src值然后传给android三步走:1、android配置webSetting://WebSettings mWebSettings= mWebView.getSettings();//开启js支持mWebSettings.setJavaScriptEnabled(true);//添加js接口:mWebView.addJavascr...

2019-08-27 14:37:44 199

原创 自定义注解实现findViewById、onClick

findViewById注解实现效果:只要在需要注解的Activity中声明开启,就能够对字段绑定注解:像这样:@BindView(R.id.recycler)private RecyclerView recyclerView;@BindView(R.id.rg)private RadioGroup radioGroup;@BindView(R.id.tv)privat...

2019-08-19 11:36:01 340 2

翻译 用MMKV代替SharedPreferences存储键值对数据

介绍:MMKV——基于 mmap 的高性能通用 key-value 组件MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Windows 平台,一并开源。上速度性能对比图:...

2019-08-14 12:07:21 720

原创 模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(三)

模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(一)模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(二)模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(三)接下来我们结合MVP模式结构分模块:首先分模块我们知道模块间是不能互相调用的,所以自己封装的mvp结构和一些公用的底层封装我们新建模块的时候选择Library,里面...

2019-08-13 19:05:49 547

原创 模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(二)

模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(一)模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(二)模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(三)下面我们来讲解支持模块间的路由、通信、解耦的第三方框架——阿里巴巴ARouter框架:Arouter官方github地址:https://github.com/al...

2019-08-13 18:51:37 342

原创 模块化开发步骤 + ARouter的使用 + 结合mvp结构分模块(一)

(一)分模块步骤:1、新建模块:New Module,选择第一个Phone,表示可以独立运行的模块取名为模块的名字,然后configure Activity的时候要注意Activity和Layout的名字都不能有重复。比如这里创建一个叫做login的模块,完成之后就可以看到他是可以单独运行的。2、做模块的配置:我们把他们build.gradl...

2019-08-13 18:47:12 425

原创 GridView高度自适应:数据撑满高度

需求:很多情况下GridView设置高度wrap_content就只会显示一行,数据显示不全,需要滚动查看后面的数据。设置match_parent又会占满一屏使得在它下边的控件到了不显示。给他固定高度吧,又不灵活。我们想让他数据有多少行就显示多少行,解决方法如下:自定义GridView,重写onMeasure方法实现:public class LabelGridVie...

2019-07-23 12:04:30 6758

原创 jiaozivideoplayer全屏填充模式字幕被裁切掉了的问题解决

jzvd:饺子视频播放控件。需求:很多电影全屏并且选择填充的话,下方的字幕会被裁切掉一部分,而视频顶部却留了一条没有用的黑条,如何让其往上偏移一点,就是占满顶部的黑条,这样字幕也就能看得到了就像这样:一开始我重写了addTexturView方法,把layoutParams原本Center的Gravity改为Bottom,下方字幕就可以完全显示,不过上方裁切了黑条的高...

2019-07-19 10:43:23 1109 2

原创 打开方式显示自己的APP

先说一下格式,待会设置的mimeType格式:统一格式:视频:video/* 音频:audio/* 图片:image/* 全部:*/*详细格式:rar:application/x-rar-compressed jpg:image/jpeg zip:application/zip pdf:application/pdf doc:application/msw...

2019-07-17 18:41:35 321

原创 实现跳转界面前后两个view的转场动画

效果说明图:1、先在需要转场动画的view上面声明他的转场名称transitionName:(目标view也要加这个transitionName)<ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height=...

2019-07-08 11:54:38 854

原创 用泛型封装Retrofit2+Rxjava2的常用请求

众所周知,Retrofit2+Rxjava2常用的请求格式如下://Api.getApiService()为单例模式封装的Retrofit.Builder().create(xxx.class)Api.getApiService().login(map) .subscribeOn(Schedulers.io()) .obser...

2019-07-05 15:50:45 1314

原创 Android/ios/h5 三步调起QQ群聊,一键加群

官网可生成网页、ios、android相关代码等三种方式,二维码就不说了三步走:1、登录官网:https://qun.qq.com/join.html2、选择群聊3、复制代码收工。android代码示例:/****************** 发起添加群流程。群号:群名(群号码) 的 key 为: xxxxxxxxxxxxxxxxxxxxxxxxxxxx...

2019-07-01 17:58:02 8441

原创 自定义jiaozivideoplayer点击全屏后黑屏有声不会旋转问题

针对问题:(注意是针对原jzvdStd控件是能正常全屏情况)直接用jzvd控件是能正常全屏的,而自定义一个类继承jzvdStd实现自己想要的需求之后,点击全屏屏幕不会旋转,出现黑屏,但是有声音的问题。解决:试试重写这个方法://重写这个方法,调用父类的startWindowFullscreen@Overridepublic void startWindowFullscre...

2019-06-25 10:41:04 1172

原创 Toolbar显示返回按钮以及响应

两步走:1、设置按钮显示://左侧添加一个默认的返回图标Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);//设置返回键可用getSupportActionBar().setHomeButtonEnabled(true);2、响应:@Overridepublic b...

2019-06-21 11:57:11 3586

原创 java.lang.IllegalStateException:The specified child already has a parent异常万能解决方案:removeView

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.这个异常让人很头疼,你必须要在parent上调用removeView移除掉你要重复使用的这个view才可以,有时候不知道你的view被...

2019-06-20 15:07:36 12829

原创 webView全屏播放视频类

三步走:1、Androidmanifest.xml给你播放视频的webview所在activity添加如下代码:<activity android:name=".WebVideoPlayer" android:hardwareAccelerated="true" android:configChanges="orientation|keyboardHidden...

2019-06-14 15:02:52 797

原创 android studio从git上克隆项目显示the directory already exists and it is not empty

英文的意思能看懂,文件夹已存在并且不为空。但是网上百度了一下貌似没有完完整整是这句话的问题,我还纳闷怎么克隆不下来……我是想把项目克隆下来到workspace里面,workspace里面本来就还有其他项目在。原来克隆操作不会帮你生成跟目录,你在哪个文件夹下面克隆哪个文件夹就是根目录,所以:解决: 自己先创建一个空的文件夹,然后再选择这个文件夹,你克隆下来的项目才会...

2019-06-13 15:08:37 15228 1

spannedgridlayoutmanager-3.0.2

github:https://github.com/jmartinesp/SpannedGridLayoutManager 描述:Android RecyclerView.LayoutManager that resizes and reorders views based on SpanSize(RecyclerView跨行跨列的LayoutManager) 关联博客:http://t.csdnimg.cn/QWNLC

2024-02-01

android studio常用插件.rar

资源包含GsonFormat.jar、android-butterknife-zelezny.jar、FindViewByMe.jar、drawable_preview-1.1.4.zip等四个android studio插件,可在android studio直接导入即可。导入方式以及插件介绍查看博客:https://blog.csdn.net/qq_35584878/article/details/103893746

2020-01-08

空空如也

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

TA关注的人

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