- 博客(47)
- 收藏
- 关注
原创 okhttp源码简单流程分析
拦截器详细解析可以看大佬简书 "https://www.jianshu.com/p/6fac73f7570f"和 “https://www.jianshu.com/p/3c740829475c”okhttp请求流程构建一个okhttpClient对象,传入你想传入的对象,不传就是默认的;2:构建request对象3:okHttpClient.newCall 实际上返回的realCall类 继续调用RealCall.newRealCall。
2023-08-17 22:13:26 867
原创 自定义view实现抽屉布局
public class MainActivity extends AppCompatActivity { private SlidingView slidingView; private View menuView; private View contentView; @Override protected void onCreate(Bundle sa...
2023-07-28 15:49:21 99
原创 ffmpeg命令将2张图片转为循环播放的视频
ffmpeg -y -loop 1 -r 0.4 -f image2 -s 1920x1080 -i image%d.jpg -vcodec libx264 -r 60 -pix_fmt yuv420p -t 5 video2.mp4-y 替换生成-loop 1 无限循环 0 单次循环-r 0.4 在 -i 前的是代表一秒播放几张 在-i后的是帧率-t 时长
2021-08-31 09:54:13 1282 1
原创 WebView自动播放视频
WebView自动播放视频WebSettings webSettings = WebView.getSettings(); webSettings.setMediaPlaybackRequiresUserGesture(false); //自适应屏幕 webSettings.setLayoutAlgorithm(SINGLE_COLUMN); webSettings.setLoadWithOverviewMode(true); // 设置编码格式 webS
2021-08-26 11:12:05 36886
原创 list循环remove出现的下标越界问题
不要用for循环写//正解var iterator = list.iterator()while(iterator.hasNext()){ var next = iterator.next() if(next.isChecked == true){ iterator.remove() adapter!!.notifyDataSetChanged...
2019-12-23 09:51:09 1606
原创 用retrofit写一个简单的网络请求
//类型随便换Observable.fromCallable(object : Callable<String>{ override fun call(): String { return "" }}).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()...
2019-12-10 20:25:54 172
原创 沉浸式的透明状态栏
一:找到res->value->style.xml添加两句话把parent改为NoActionBar<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item nam...
2019-11-25 14:20:12 129
原创 OpenGLEL画一个四边形
//rect_vertex.glslattribute vec4 vPosition;attribute vec4 aColor;varying vec4 vColor;void main(){ gl_Position = vPosition; vColor = aColor;}//rect_fragment.glslprecision mediump float;...
2019-11-21 14:15:41 204
原创 OpenGLES画一张图片
//.glsl文件//pic_vertex.glslattribute vec4 vPosition;attribute vec2 vCoord;varying vec2 aCoord;void main(){ gl_Position = vPosition; aCoord = vCoord;}//.glsl文件//pic_fragment.glslprecis...
2019-11-21 09:34:58 524
原创 手机录音+消除杂音+消除回声
private AudioRecord audioRecord;private Button start;private Button stop;private volatile int state;private File outPutFile;private File wavOutFile;private AutomaticGainControl automaticGainCon...
2019-11-19 14:08:14 2187
原创 第三方SuperEditText使用
原作者连接:https://blog.csdn.net/carson_ho/article/details/77179764<scut.carson_ho.diy_view.SuperEditText app:ic_left_click="@drawable/ic_left_click" app:ic_left_unclick="@drawable/ic_left_uncl...
2019-08-26 10:04:34 413
原创 使用环信完成一个简单的登录,退出,发消息
先写清单文件<service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/><service android:name="com.hyphenate.chat.EMJobService" android:permission="android.permission.B...
2019-08-17 08:53:02 713
原创 使用NavigationView实现开关抽屉
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_p...
2019-08-16 11:49:41 461
原创 使用XML给图片添加动画
在res包下新建anim包//消失<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="1" android:toAlpha="0.1" android:interpolator="@andro...
2019-08-15 15:42:37 475
原创 给按钮添加动画效果
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/vbtn1" android:text="位移动画"/><Button android:layout_width="wrap_content"...
2019-08-15 15:38:00 1084
原创 ZXing实现二维码功能
先布局<Button android:text="生成" android:id="@+id/btn1" android:layout_width="match_parent" android:layout_height="wrap_content" /><Button android:text="扫描" android:id="...
2019-08-15 15:25:47 151
原创 Matrix图片操作
先写一个自定义viewprivate Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);private Matrix matrix = new Matrix();private Bitmap bitmap;public MainImageView(Context context, AttributeSet attrs) { super(c...
2019-08-14 15:02:12 366
原创 Calces实现
1.模块化:每个module都是一个library不能独立运行2.组件化:每个module都是一个组件(application)可以独立运行->模块化测试;按照业务拆分->商城;用户;社区;资讯3.模块化与组件化的区别;模块化不能独立运行组件化可以独立运行4.Calces配置组件化:自动化构建module-.组合不同应用程序5.Calces如何使用:官网地址:htt...
2019-08-05 10:16:05 262
原创 实现RecycleView上下滑动删除
很简单 只需要在ItemTouchHelper的CallBack中的getMovementFlags方法中修改就行了@Override public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { ...
2019-07-30 11:30:45 174
原创 RecycleView实现上下拖动item改变item顺序以及左滑消失
public interface ItemTouchHelperAdapter { void onItemMove(int fromPosition,int toPosition);//移动时方法 void onItemDissmiss(int position);//消失时方法}//在recycle适配器中实现ItemTouchHelperAdapter接口@Overri...
2019-07-29 21:27:45 404
原创 Glide加载图,圆角,圆形以及设置占位图,加载错误图片,动态图
依赖: implementation ‘com.github.bumptech.glide:glide:4.6.1’Glide.with()//上下文 .asGif()//设置为动态图 .load()//图片下载地址 //.apply(RequestOptions.bitmapTransform(new CircleCrop()))//圆形 ...
2019-07-25 21:30:31 903
原创 SurfaceView实现写字板功能
public class DrawingActivity extends AppCompatActivity implements SurfaceHolder.Callback{ private SurfaceView surfaceView; private SurfaceHolder surfaceHolder; private Button button; ...
2019-07-22 15:29:01 487
原创 Banner轮播图
Banner依赖:implementation ‘com.youth.banner:banner:1.4.10’OkGo依赖:implementation ‘com.lzy.net:okgo:3.0.4’Glide依赖:implementation ‘com.github.bumptech.glide:glide:4.6.1’public class MainActivity extends...
2019-07-22 15:18:04 141
原创 CommonTab实现类似qq消息数
//注意要写ArrayList 而不是listprivate ArrayList<CustomTabEntity> list = new ArrayList<>();list.add(new MyTab("消息",R.drawable.frown,R.drawable.frown2));list.add(new MyTab("好友",R.drawable.frown,...
2019-07-22 15:10:55 186
原创 Toolbar和DrawerLayout以及slidingMenu
效果图先写布局注意要使用drawer的话要把主布局写到drawerLayout中必须先写主布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools=...
2019-07-22 15:05:43 127
原创 RecyclerView实现多布局
实现一个类似于拨号页面的效果public class PhoneActivity extends AppCompatActivity { String[] arr = {"android.permission.READ_CONTACTS"}; private RecyclerView recyclerView; private String label = ""; ...
2019-07-22 14:45:59 179
原创 RecyclerView
RecyclerView是谷歌官方推荐的用来代替ListView的布局管理器RecyclerView相对于ListView的优点RecyclerView比ListView实现的效果更多RecyclerView支持多布局RecyclerView根据项目的需要插拔功能RecyclerView的适配器相比ListViwe减少大量代码量RecyclerView无法直接实现item点击事件需...
2019-07-16 09:47:01 85
原创 OkGo请求数据
OkGo主要功能基本的get、post、put、delete、head、options、trace、patch八种请求支持upString,upJson,upBytes,upFile等up类方法上传特定数据支持一个key上传一个文件,也可以一个key上传多个文件,也可以多文件和多参数一起上传大文件下载和下载进度回调大文件上传和上传进度回调支持cookie的自动管理,并可自定义cook...
2019-07-16 09:12:53 973
原创 Bluetooth客户端与服务端
//蓝牙规范private UUID uuid = UUID.fromString(“00001106-0000-1000-8000-00805F9B34FB”);注意:在服务端接收数据时会遇到java.io.IOException: bt socket closed, read return: -1这是因为服务端的read是阻塞方法 即使发送过去的文件读完了 也不会自己结束 只能走到0...
2019-07-14 21:05:03 1763
原创 http协议数据的上传和下载以及断点续传
在下载前先自己建一个服务器方便测试package com.example.day1_http_test.model;import android.os.Handler;//创建一个接口类public interface FileNetInterface { //参数一 要从服务器下载的文件 参数二 下载路径 参数三 在下载时传递下载进度 public void downloa...
2019-07-14 20:28:06 624
原创 ScreenUtils工具类
public class ScreenUtils { /** * 获取屏幕高度 * @param context * @return */ public static int getScreenWidth(Context context){ WindowManager manager = (WindowManager) con...
2019-07-14 19:07:10 650
原创 Notification通知
一.普通通知二.自定义通知进度条通知1.普通通知并跳转页面//创建构造者Notification.Builder builder = new Notification.Builder(getActivity());//注意:必须为通知设置一个任意图片builder.setSmallIcon(R.mipmap.ic_launcher);//为通知设置标题builder.setCon...
2019-06-30 20:16:13 138
原创 BroadcastReceiver 发送以及接收广播
1.写一个主类用来发送广播2.注册广播IntentFilter intentFilter = new IntentFilter();//可以添加多个地址intentFilter.addAction("android.bawei.action.customer");//广播接收器 参数一:广播接受者的对象 参数二:过滤器 通过过滤器来指定发送地址registerReceiver(rece...
2019-06-24 15:37:11 1100
原创 广播发送系统情况如当前电量等
先注册mySystemReceiver = new MySystemReceiver();IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_BATTERY_LOW);intentFilter.addAction(Intent.ACTION_BATTERY_OKAY);in...
2019-06-24 15:19:25 142
原创 android跨程序间数据传输权限
权限就相当于一把锁 保护数据的1.内容提供者在内容提供者的清单文件中与activity同级别<provider android:exported="true" android:authorities="com.bawei.liyou" android:name=".MyProvider"></provider>```在写与applicat...
2019-06-24 15:05:29 331
原创 ContentProvider内容提供者
1.首先需要一个自己的数据库2.写内容提供者继承自ContentProviderpackage com.example.appa;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;//写...
2019-06-24 14:56:40 97
原创 自定义内容提供者Provider
一.建立内容提供者1.创建数据库并直接添加数据2.创建内容提供者内容提供者类继承自ContentProvider实现6个方法在onCreate中实例化数据库对象在query中实现查询功能getType可以不写insert实现添加功能delete实现删除功能update实现修改功能最后在清单文件中写入提供者与activity同一级别相当于一个标记另一个应用...
2019-06-18 22:49:54 155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人