自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(202)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android10(SDK29)以后存储问题

例如:Environment.getExternalStorageDirectory()+"/"+Environment.DIRECTORY_DOWNLOADS。可以在外部存储创建文件/文件夹,前提是有存储权限,例如Environment.getExternalStorageDirectory()例如:Environment.getExternalStorageDirectory()+"/mydir",会创建失败。1:使用系统给app分配的内部存储不需要存储权限?2:不能随意在外部存储创建文件/文件夹;

2023-12-27 16:32:15 484

原创 提取视频文件里的音频和无声视频

二、提取视频文件里的无声视频。

2023-08-24 13:37:27 819

原创 MediaMetadataRetriever的用法

【代码】MediaMetadataRetriever的用法。

2023-08-24 11:23:40 276 1

转载 MediaMetadataRetriever

MediaMetadataRetriever是Android原生提供的获取音视频文件信息的一个类,我们可以通过这个类的相关方法获取一些基本信息,如视频时长、宽高、帧率、方向、某一帧的图片等。

2023-08-24 11:20:13 417

原创 自己定义一个播放器

FilterVideoPlayer:就是播放器的播放逻辑,里面目前使用的是SimpleExoPlayer,可以根据需要改为MediaPlayer或其它播放器;具体怎么使用这个播放器参考:PPTVideoView。

2023-08-24 11:03:20 168

原创 零散的知识点

一,TextView内容可滚动且有滚动条参考智能课件,PPTRichView private void initView(Context context) {// setBackgroundResource(R.drawable.layer_shade_shape); textView = new TextView(context); LayoutParams layoutParams = new LayoutParams(ViewGroup.

2022-05-16 09:29:39 297

原创 禁用子View的硬件加速导致如果子view的宽高大于父view的很多子View无法显示的问题

今天遇到一个问题,如果view的宽度比父view的宽高小,子view还能正常显示,若果子view的宽高比父view的款到大很多,子view就无法显示,排查了很久,结果发现我在子view中调用setLayerType(View.LAYER_TYPE_SOFTWARE, null),禁用了赢家加速,把这行去掉子view就可以正常显示了。另外一点是,部分手机如果子view的宽高只是大于父view的宽高一点点,具体多少不固定,即使子view禁用硬件加速,子view仍可显示。...

2020-09-10 16:33:52 323

转载 FileProvider(Failed to find configured root that contains)

最近在测试FileProvider相关功能的时候,在从自定义相册选择图片通过FileProvider来获取content uri的时候程序突然崩溃了,报出了Failed to find configured root that contains xxxx的错误,一开始以为是自己的配置出错了,但是参照官方文档改来改去仍然没有任何作用,通过绞尽脑汁地排查,终于发现了错误原因,并找到了正确的解决方案,在了解最终的解决方案之前我们先对FileProvider做个简单的了解和回顾。FilePro.

2020-08-28 10:08:14 3831

原创 Android的Apk签名方案

以后不再使用JDK提供的Jarsigner工具进行签名,而是使用Google官方提供的apksigner工具进行签名。因为Jarsigner只支持V1签名,而apksigner默认同时支持V1、V2、V3签名。apksigner签名流程:1:apksigner位于SDK/build-tools/SDK版本下因为是在Android 7.0中引入了全新的 APK Signature Scheme v2签名方式,所以需要在25或者25以上版本的SDK的build-tools\版本号的目录下进.

2020-07-01 23:30:52 650

转载 如何解决aar中的第三方依赖无法调用问题

如何解决aar中的第三方依赖无法调用问题背景:近日公司需要做一个信息流的项目,嵌入到已经存在app中,为了让信息流的模块进行独立,需求是将信息流模块打包成aar形式,单独集成到主项目中.问题:在集成的过程中遇到了一些问题,如果将aar放到lib目录下,aar里面依赖的第三方库无法调用,因为编译aar的时候,并没有将第三方依赖的库编译到aar中,aar中只有源代码\资源文件等.解决方案:在网上搜了一大堆解决方案,有说在主项目中把aar需要的依赖加上,虽然说也可...

2020-05-22 10:52:45 2699

原创 实现TextView的垂直滚动以及通过代码设置TextView滚动无法显示滚动条的问题

一,通过布局设置 <TextView android:id="@+id/tv_content" android:layout_width="match_parent" android:layout_height="160dp" android:layout_marginTop="10dp" android:scrollbars="vertical" android:textColor="@col

2020-05-21 11:55:18 5590

转载 Android解析自定义标签

一、需求简介Android中TextView可以实现简单的HTML解析,将Html文本封装为Spannable数据实现图文混排等富文本效果,但是同样问题很多。1、SDK中提供的解析能力不够强,提供的样式支持不足,对于css属性的解析很弱。2、不支持多个css样式同时解析。3、SDK中提供的Html.TagHandler无法获取到标签属性。4、可扩展性不够强,无法自定义解析器。...

2020-04-21 11:06:17 882

转载 Android 控制线程的暂停和恢复

在Android中有时我们会遇到类似这样的问题,我要绘制一个曲线图,但是我想让它可以被暂停和继续。首先,绘图肯定得用到多线程的知识。java的Thread类中自带suspend和resume两个方法来实现线程的暂停和恢复,可惜的是,现在已经不被建议使用了,而且,就算你用了,也没什么卵用,根本没效果,哈哈(这就很尴尬了!)网上查了不少资料(在这里感谢网上一些博客的指导了),经过修改,哈,保证绝对...

2020-04-21 11:03:21 1483

原创 compileSdkVersion、buildeToolVersion、minSdkVersion、targetSdkVersion的理解

compileSdkVersion只会作用在编译阶段,编译的时候使用哪个版本的SDK,一般我们都会设置成目前市面上的最高版本,从而更早的采用一些新特性新方法等。需要注意的是v4、v7、cardview等兼容包的版本要和compileSdkVersion的保持一致,比如我们compileSdkVersion = 26,那么V4,v7的版本也要相应的是26.xx.xx,首位的26必须一致,后两位没...

2019-11-06 17:53:52 214

原创 Jenkins自动化构建Android配置使用指南

看有道云笔记“jenkins配置使用指南”或者百度网盘 “博客”文件夹下的“jenkins配置使用指南”

2019-11-06 15:16:11 33

转载 TextView使用autoSizeTextType自动调整字体大小适应固定宽

注意看最下面的注意事项意为:TextView字体大小随着控件的大小变化而变化,Android 8.0(API26)新增,但兼容库com.android.support:appcompat-v7:26.0.0版本以上已完全兼容到 API14android_auto_size.gif有三种设置方式:默认 粒度 预设大小1.默认允许TextView在水平轴和垂...

2019-10-23 11:27:42 14778

原创 android studio运行无法安装apk:...apk does not exist on disk Error while Installing APK

解决办法:

2019-09-20 10:15:13 165

转载 Android音量键控制的模式和设置音量相关的API

当开发多媒体应用或者游戏应用的时候,需要使用音量控制键来设置程序的音量大小。在Android系统中有多中音频流,通过Activity中的函数setVolumeControlStream(int streamType)可以设置该Activity中音量控制键控制的音频流,一般在onCreate函数中设置。Android中有如下几种音频流(streamType是需要调整音量的类型):AudioMan...

2019-09-16 17:25:41 2049

原创 自定义toast(给toast指定布局和显示位置)

private void showDiyToast(Context context) { Toast toast = new Toast(context);//创建一个Toast示例 toast.setDuration(Toast.LENGTH_SHORT);//设置toast显示的时长 View layout = View.inflate...

2019-09-16 16:26:06 1638

原创 另一种方式解决依赖module的BuildConfig.DEBUG总是为ture的问题

按照下图修改完成后,在代码需要的位置,引用BuildConfig.IS_RELEASE即可。

2019-05-17 18:49:41 1371

转载 Android Studio自动生成对象的toString()使其以json格式输出

转载自:http://blog.csdn.net/NongJushi/article/details/75500867在日常开发中,有时候为了更清晰的观察实体类的数据,我们一般重写 toString( ) ,但默认的格式只是拼接的字符串,如果参数太多就不方便观察了。因此我们可以定制自己的 toString( ) 模板,利用JSON格式再进行格式化,就能够更为清晰方便的观察数据。详细操作步骤如...

2019-05-17 15:27:10 2587

原创 改变ScrollView滚动条的样式

第一步定义样式的drawable<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!--定义颜色--> <...

2019-05-16 16:57:16 4832

原创 使用OrientationEventListener实时监听手机旋转的角度

1:使用OrientationEventListener可以监听手机的旋转角度:orientationEventListener = new OrientationEventListener(this) { @Override public void onOrientationChanged(int orientation) {...

2019-05-16 16:42:20 6111

转载 Android RecyclerView 顶部悬浮实现

sticky.gif思路:每一个RecyclerView的item的布局(下文叫itemUI)里面都包含“吸顶文本”这个布局(下文叫StickyLayout),根据当前itemA和上一个itemB的吸顶信息是否相同,决定是否展示itemA的StickyLayout. 包含RecyclerView的布局(下文叫wrapperUI)最上部分,有一个假的StickyLayout(下文...

2019-05-07 18:19:59 2940

原创 获取TextView的行数和限制TextView的行数

//tvContent是一个TextViewholder.tvContent.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { ...

2019-05-07 18:04:39 1599

原创 Android中View的测量流程

2018-12-12 14:40:05 212

原创 怎么才能知道Anroid当前support library的最新版本号是多少

怎么才能知道Anroid当前support library的最新版本号是多少可查看官网:https://developer.android.com/topic/libraries/support-library/revisions历届版本都有

2018-11-30 14:37:03 2029

原创 Anroid触摸事件分发机制---ViewGroup相关

这篇文章只介绍ViewGroup事件分发机制,因为Activity和View的事件分发,相对很简单,网上随便找一篇文章基本就能理解了,但是对于ViewGroup的事件分发机制,我真的看了不下20篇文章,没有一篇讲的到位的,没有一篇告诉你重点关注哪个点,最后只是告诉你一堆结论,或者给你看一堆流程图,最气人的是没有一篇文章告诉你ACTION_CANCEL怎么回事,ACTION_CANCEL时系统其实做...

2018-11-29 15:08:19 175

原创 Ubuntu远程登录到Windows

一:被连接的windows的设置最好不要用Windwos中文版,要用专业版,企业版等其它版本。否则可能失败二:Ubuntu设置我用的Ubuntu版本是14.04,从dash中所搜Remmina Remote Desktop Client并打开,做如下图设置一般只需要设置我标记的内容,其它内容保持默认即可,设置完成后点击连接即可连接成功。 ...

2018-11-26 17:57:27 5684

转载 Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系

原文链接:https://www.cnblogs.com/jiangxinnju/p/8229129.html总结:Gradle:是一个项目构建系统,类似于Maven。Gradle并不是只能用于Android,而是Android引用里Gradle。https://docs.gradle.org/current/userguide/userguide_single.htmlGradle ...

2018-11-21 13:11:05 190

转载 Ubuntu安装Android Studio

 原文链接:https://blog.csdn.net/weidong32768/article/details/80466980第一步:安装JDK使用下面三条命令安装JDK sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-...

2018-11-20 17:52:03 2015

原创 gradle常用命令

常用命令注意:在window下可以直接运行 gradlew 如果是Linux 或者 mac 命令为 gradle gradlew 这里都简写成 ./gradlewgradle 任务查询命令所有后面的命令,都必须在 tasks --all 可见,不然报告找不到这个任务# 查看任务./gradlew tasks# 查看所有任务 包括缓存任务等./gradlew tasks -...

2018-11-20 17:29:43 9886 1

原创 Android开发环境从Windows迁移到Ubuntu以上以及Gradle3.0+遇到的问题

一:gradle和gradlew的区别以gradle apkRelease和gradlew apkRelease,gradle是你本地安装好的gradle版本,gradlew始终是跟随你项目的版本。因此如果使用gradle可能和你的项目不兼容。所以尽量使用gradlew构建。第一次使用可以在终端运行'gradlew'命令,这样就会自动下载你项目中gradle-wrapper.propert...

2018-11-13 17:57:53 399

原创 自定义menu菜单布局

一:先写一个自定义的菜单布局这个布局可以根据业务需要任意写&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:la...

2018-07-11 11:28:12 10297 2

原创 就这一次看懂TraceView

一、TraceView的用处TraceView用于分析计算性能,流入某个方法过于耗时导致UI卡顿,或者某个方法调用次数过多,或者某个方法虽然并不占用太多内存但是占用了大量的CPU资源等等。二、获取TraceView文件的三种方式1:方式一:通过代码获取case R.id.bt_trace_view: Debug.startMethodTracing("custom"); start...

2018-05-02 16:26:02 5534 1

原创 android:clipChildren的意思及其用法

一:使用模板clipChildren作用于爷ViewGroup,用于限制子View是否可以超出父ViewGroup的范围,默认为true即不可以,也可以在代码中设置:setClipChildren (boolean clipChildren),也可以从代码中判断某个ViewGroup的clipChildren值:boolean getClipChildren()。<LinearLayo

2017-12-08 17:11:55 1152

原创 Linux系统中挂载点的理解

挂载点:Linux是树型目录结构,与windows的C,D,E盘完全不同,Linux只有一个根目录'/',其余各个目录都是基于这个根目录发散,就是树形结构。因此Linux分区跟Windows的C,D,E盘分区完全不同,而是将某个分区挂到一个对应的目录上,例如/home对应一块分区,home目录就是这块分区的挂载点、/boot对应一块分区,boot目录就是这块分区的挂载点、/usr对应一块分

2017-10-10 16:08:33 9306 2

原创 Android官方推荐的集合类

SparseArraySparseArray是android里为这样的Hashmap而专门写的类,目的是提高内存效率,即如果你想使用Map则可以用SparseArray替换,注意前提key是Integer类型。用法:a:定义常量 public static final SparseArray DIFF_PRICE_TYPE_DESC = new SparseArray()

2017-09-26 15:36:41 1278

翻译 【每天积累一点点】Humans of New York

“I got divorced when I was sixty-four. We had a good run. We were married for 36 years. We’re not enemies.We just outgrew each other. When the kids were in the house, all our focus was on them.But aft

2017-09-19 14:27:55 582

原创 【每天积累一点点】BottomNavigationView使用教程

一:基本用法1:在res/menu目录下定义菜单布局:xml version="1.0"encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android">            android:id="@+id/recents"        android:title="第一"

2017-09-05 17:55:49 2718

个人总结的webstorm快捷键

webstrom快捷键,很全总结的很有条理,可以在开发的时候拿过来随手翻翻

2018-11-19

西安交大考研真题计算机软件基础2008

西安交大2008年的真题,可以有针对性的复习一下

2013-03-02

微波技术与天线复习题

微波技术与天线复习题,很有用的资料,希望多多下载

2010-07-12

空空如也

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

TA关注的人

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