自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

用技术改变世界

用技术改变命运

  • 博客(23)
  • 收藏
  • 关注

原创 Android TextView点击第一次不响应,第二次才有效的问题。

试过给TextView加属性android:focusable="true"android:focusableInTouchMode="false"并没有效果。分析原因,点击第二次才有效,一定是第一次焦点被抢了,那么被谁抢了呢?排查代码:mIvSplash.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);就是它,这行代码用于隐藏导航栏,所以它把焦点夺走了。注掉这行代码就点击一次就响应了。但是为了不破坏需求,解决办法如

2020-07-21 14:12:51 1085

原创 学习小程序笔记——UI、数据绑定

UI底部分割线border-bottom: 3px solid rgba(128, 128, 128, 0.089);竖向 平均分配位置.huodong_style ._right{ flex: 1; padding: 10px; display: flex; flex-direction: column; justify-content: space-between;}app.json里的tabBar window数据绑定属性绑定 根据Boolean 判断

2020-07-04 16:00:21 248

原创 Android studio 搭建音视频开发环境(FFmpeg)

第一步创建c++项目第二步把FFmpeg的静态库导入jniLibs目录arm目录里第三步把头文件include文件夹,复制到cpp文件夹下第四步在build.gradle里添加支持的cpu第五步CMakeLists.txt# 指定cmake最小支持版本cmake_minimum_required(VERSION 3.4.1)# 添加一个库,根据native-lib.cpp源文件编译一个native-lib的动态库add_library( native-li

2020-07-01 10:05:20 414 1

原创 FFMPEG_基础命令命令

FFmpeg常用命令分为六大类录屏命令Mac 上的指令有所不同要注意ffmpeg -f avfoundation -video_size 2560x1440 -framerate 30 -i 1 out.mpg抽取音频ffmpeg -i test.mp4 -acodec copy -vn out.aac看结果抽视频 ffmpeg -i test.mp4 -vcodec copy -an out.h264 看结果把原视频换个背景音乐试试ffmpeg -i ou

2020-06-30 13:06:17 299

原创 CMake、CMakeLists.txt、android导入fmod库示例

什么是CMake?CMake源文件CMake注释变量列表lists操作符带括号的 优先于 一元一元 优先于 二元二元 优先于 逻辑布尔常量值条件命令循环语句while(如果变量 a 不等于 “xxx”)就在a的结尾 加一个x打印a变量set(a "")while(NOT a STREQUAL "xxx") set(a "${a}x") message("a = ${a}")endwhile()a = xa = xxa = xxx

2020-06-28 14:49:49 318

原创 shell变量、语法(循环、文件读)、运算符、重定向、方法参数传递、脚本编写与执行编译ffmpeg库

#!/bin/bash //环境变量#FIle by tp //创作者echo "tp" //echo 打印A=10 //局部变量A=10 不要加空格echo $A //用$取值echo $PWD //PWD系统环境变量的值 就是路径输入参数#!/bin/bash#FIle by tpecho "this \$? is $?"echo "this \*? is $*"echo "this \#? is $#" tongpeng@bogon  ~ 

2020-06-23 21:52:17 142

原创 静态库与动态库原理,编译流程,makefile走读、语法基础、Android.mk基础

编译流程:1、预处理2、编译3、汇编4、连接gcc -o test test.c直接把test.c文件 编译成 可执行文件静态库rcsr:表示更新、增加新文件到静态库中c:创建一个库,不管存在与否,都创建s:创建文档索引,在创建较大的库的时候,能够加快编译时间。动态库生成静态库命令:ar rcs libtool.a tool.o生成动态库命令:gcc -shared -fPIC -o libtool.so tool.o什么是makefile?

2020-06-16 15:50:23 196

原创 C++ 命名空间、引用、指针、容器、强转、类、友元函数、友元类、单例、重载操作符、继承、多态、虚函数、模板(泛型)

命名空间类似包名 区分重名using namespace std;//命名空间namespace first_space { void fun() { cout << "first_space" << endl; }}namespace second_space { void fun() { cout << "second_space" << endl; }}int ma

2020-06-15 10:20:44 148

原创 C++ 函数、指针数组、数组指针、结构体、共用体、动态库静态库

函数一、函数要写在main函数下面,或者include头文件二、头文件 类似java的接口 不参与编译三、指针函数是返回值是指针四、函数指针 类似声明变量#include <iostream>#include "fun.h"//函数指针 无参void (*func)(); //类似声明变量void funC() { printf("函数指针\n");}//函数指针 有参void (*funcp)(int *a, int *b);void funCp

2020-06-10 16:17:24 161

原创 Kotlin_面向对象、继承、接口代理、接口方法冲突、Object(单例)、伴生对象、静态方法(成员)、方法重载、拓展方法、属性代理(by)、数据类、内部类、枚举、密封类

凡事不要亲力亲为 让手下去干class SeniorManager(val drive: Drive, val write: Write): Drive by drive, Write by writeclass CarDriver: Drive{ override fun drive() { println("司机开车呢") }}class PPTWriter: Write { override fun write() { pri...

2020-06-01 11:34:31 236

原创 自定义尺寸和内部布局、手写 TagLayout

第一步:就是xml布局写的开发者的要求第二步:第三步:// 第二步 widthMeasureSpec heightMeasureSpec 父view传给我的要求//哪一类要求?具体值是多少?//要求分三类 1具体值 2上限 3不限制override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { //第三步 结合父控件的要求做修正 自己算 var width = (RADIUS...

2020-05-14 13:10:42 222

原创 Kotlin_条件结构语句

常量与变量const val FINAL_VALUE: String = "我不可修改"var helloWorld: String = FINAL_VALUE//可以不用写类型,编译器会识别出来val FINAL_MARIO = "马里奥"fun main(args: Array<String>) { println(helloWorld) helloWorld = FINAL_MARIO println(helloWorld)}函数fun

2020-05-09 12:29:58 187

原创 Kotlin基本数据类型

布尔类型val boolean: Boolean = true val boolean: Boolean = true val anInt: Int = 8 val anotherInt: Int = 0xFF val moreInt: Int = 0b00000011 val maxInt: Int = Int.MAX_VALUE val minInt...

2020-05-06 19:55:49 197

原创 IOC框架设计----Butterknife

什么是IOC?核心思想就是:IOC是原来由程序代码中主动获取的资源,转变由第三方获取,并使原来的代码被动接收的方式,以达到解耦的效果,称为控制翻转。举个生活中的例子:你–>穿衣服—>出门 (ioc以前)你—》一个眼神—>女朋友给你拿衣服,再给你穿上—>出门 (ioc以后)采用APT注解处理器,替我们写代码。注解处理器写法:1、AnnotationC...

2020-04-22 13:40:02 148

原创 Android自定义控件 仪表盘

Android 自定义View 汽车仪表盘先上图步骤:一、自定义DashBoard 继承View,布局文件全类目写自定义view二、画大弧三、画刻度四、画指针详解:一、public class DashBoard extends View`布局文件<myview.DashBoard android:id="@+id/dashview" ...

2020-04-20 15:59:49 976 1

原创 Activity 中包含Fragment ,startActivityForResult 跳转其他页面,onActivityResult没有回调?

Fragment中的onActivityResult大家或许有遇到这个神坑,在Fragment中使用startActivityForResult能够成功,可是在Fragment中的onActivityResult却无法被调用。一不注意就让人一夜愁白了头。苦经探索(当然包括亲爱的百度和谷歌),终于总结出了一些规律。在Fragment中使用startActivityForResult之后...

2019-12-25 11:04:47 461

原创 android 7.0以上 安装本地apk

一、清单文件添加一下代码<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" ...

2019-12-24 15:58:50 937

原创 ListView的item中包含Edittext,内容混乱的解决办法。

listview其中的一个item 包含Edittext。对于我的业务是搜索框,每次输入完内容后,点击搜索,发现原本ET里的内容不见了。解决办法 很简单粗暴:et.addTextChangedListener(new TextWatcher() { @Override public void before...

2019-12-20 14:33:41 138

原创 MVVM 原理(二)

在正常加载xml文件的时候不会去加载<data>标签下的内容。那么是如何加载的呢?在项目build文件里,有两个重要的文件,相辅相成。第一个、格式化一下:第二个文件,也在build目录:第二个文件里,把<data 标签去除掉了。 每一个控件多了一个tag,tag的值正好是与第一个文件tagers里的相对应所以他通过这两个文件的相辅相成...

2019-12-06 13:18:48 113

原创 MVVM模式(一)简单使用

MVVM适用于小型项目,比较吃硬件。VIEW VIEWMODEL MODELgradle配置 dataBinding为trueview:布局文件<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android.com/apk/res/android...

2019-12-05 16:00:04 435

原创 Android 贝塞尔 星球 星际 旋转动画

效果三个星球,ABC。当点击星球B ,则B星球逆时针旋转到A星球的位置,A星球旋转到C星球的位置,C星球旋转到B星球的位置。如果点击的是C星球,则顺时针旋转。此动画涉及到ObjectAnimator动画,贝塞尔曲线,路径path等技术点。下面说说逻辑:一、首先确定三个星球的坐标,分别A(aX, aY), B(bX, By), C(cX, cY)二、了解贝...

2019-07-29 18:28:22 1370 1

原创 AOP 切面

模块build.gradle添加依赖implementation'org.aspectj:aspectjrt:1.9.4'}import org.aspectj.bridge.IMessageimport org.aspectj.bridge.MessageHandlerimport org.aspectj.tools.ajc.Mainfinal def log = p...

2019-07-11 14:13:31 135

原创 Android 消息机制 handler 源码分析原理

整篇文章分为三大块。1、handler消息机制流程图2、ThreadLocal3、源码分析整个发送消息的过程,包括阻塞、唤醒、延时加入消息队列。上图为网上获取,感谢提供。以上模型的解释:1.以Handler的sendMessage方法为例,当发送一个消息后,会将此消息加入消息队列MessageQueue中。2.Looper负责去遍历消息队列并且将队列中...

2019-06-21 15:26:27 199

空空如也

空空如也

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

TA关注的人

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