- 博客(22)
- 收藏
- 关注
原创 Android快速开发系列(2):BaseFragment+ViewBinding+ViewModel封装
应用场景:小项目快速开发、无快速重复加载业务需求、不考虑性能问题。封装思想:通过泛型直接指定ViewBinding、ViewModel的类型,外部暴露initView()、initData()、initViewModelOwner()。/** * @author : ZGS * Created on 2022/5/12 **/public abstract class BaseFragment<V extends ViewBinding, VM extends ViewModel>.
2022-05-12 18:05:56
1545
原创 Android 四大组件之Broadcast
发送广播Intent intent = new Intent();intent.putExtra("msg","hello,world!");sendBroadcast(intent);创建广播接收器public class BatteryBroadcastReceiver extend BroadcastReceiver { private Activity activity; public DemoRecceiver(Activity activity) { th
2022-05-08 22:20:06
536
原创 C语言(1):windows+Clion集成环境+cygwin64编译器的安装配置教程,成功运行helloworld
安装Clion(略)点击前往官网下载在clion中创建C项目下载cygwin64(C语言编译器)点击前往官网下载安装cygwin64(C语言编译器)所需组件:binutils、gcc、gdb、mingw、make关键词:binutils、gcc-、gdb、mingw64-i686-gcc-、make在clion中配置cygwin64、cmake运行helloworld程序如果觉得本文对您帮助的话,麻烦点赞关注啥的来一波呗,感谢支持!...
2022-02-23 15:18:23
1585
原创 Android简单使用VideoView+MediaController播放本地视频
在res/目录下创建raw文件夹MediaActivity.javaVideoView videoView = (VideoView)findViewById(R.id.videoView);videoView.setMediaController(new MediaController(this));// 设置视频源播放res/raw中的文件,文件名小写字母,格式: 3gp,mp4等,flv的不一定支持;Uri rawUri = Uri.parse("android.resource://"
2022-01-07 22:55:20
1127
原创 AndroidUI库(1):液态效果ViewPager——com.github.Chrisvin:LiquidSwipe
引入依赖implementation ('com.github.Chrisvin:LiquidSwipe:1.3')SwipeActivity.java LiquidSwipeViewPager pager = (LiquidSwipeViewPager) findViewById(R.id.pager); final List<Fragment> fragments = new ArrayList<>(); fragments.add(new Fragment(R.la
2022-01-07 22:20:48
289
原创 Java通过函数传址调用
一、需求通过方法对对象进行赋值,期望到方法外之前的赋值依然生效。二、Java传值与传址 public static void main(String[] args) { int x = 0; // 1.传值调用 System.out.println("1.原本的值:" + x); setValue(0); System.out.println("1.使用传值方法后x的值:" + x); int[]
2021-12-17 12:14:40
872
原创 Android缓存,删除网络依赖包缓存
Android依赖包缓存目录:C:…gradle\caches\操作步骤1、删除transforms-2文件夹下的依赖包缓存2、删除module-2文件夹下的依赖包缓存测试方法1、先通过implementation加载网络依赖包2、在AndroidStudio中查看External Libraries下是否存在依赖包3、查看缓存目录下是否存在依赖包4、断开网络!!!5、尝试通过本地缓存将依赖包依赖进来:重新同步,依次点击File->Sync Project with Gradle
2021-12-16 20:48:10
2692
原创 Android之RecyclerView强制关闭复用
@Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { // 关闭复用 holder.setIsRecyclable(false); }
2021-12-05 05:24:20
7788
原创 Android 手表WearOs 禁止滑动返回、监听滑动事件分发
需求做手表开发时,想要在页面内监听滑动要切换一些状态,结果发现每次滑动都自动返回或退出程序,onTouch监听不到事件。一、禁止手表滑动返回themes.xml:自定义主题<?xml version="1.0" encoding="utf-8"?><resources> <style name="AppTheme" parent="@android:style/Theme.DeviceDefault"> <item name="an
2021-12-05 04:11:43
1823
原创 Android相机、相册简单示例
相机静态申请权限+动态申请权限(6.0以上)AndroidManifest.xml配置文件 <uses-permission android:name="android.permission.CAMERA" />拍照流程MainActivity.java-调用相机拍照if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANT
2021-12-04 04:30:28
422
原创 Gson之解析列表数据
DataBean.java:数据实体public class DataBean { private String user; private int pass; @Override public String toString() { return "DataBean{" + "user='" + user + '\'' + ", pass=" + pass +
2021-12-03 20:39:22
2630
原创 OkHttp之get请求
使用HttpUrl构造get请求参数HttpUrl httpUrl = HttpUrl.parse("http://www.baidu.com").newBuilder() .addPathSegment("login") .addQueryParameter("username","admin") .addQueryParameter("password","123456") .build();Request r = new Reques
2021-12-01 22:38:44
1879
原创 OkHttp之常用拦截器
LoggingInterceptor.java:输出日志public class LoggingInterceptor implements Interceptor { private static final String TAG = "LoggingInterceptor"; @NotNull @Override public Response intercept(@NotNull Chain chain) throws IOException { Re
2021-12-01 22:04:28
1504
原创 OkHttp之post请求
post传jsonString url = "";OkHttpClient client = new OkHttpClient(); JSONObject jsonObject = new JSONObject();try { jsonObject.put("username","admin"); jsonObject.put("password","123456");} catch (JSONException e) { e.printStackTrace
2021-12-01 21:21:33
7657
2
原创 Mac下的SourceTree的基本使用流程
创建远程仓库在远程托管平台(如github,gitee等),登陆自己的账户,并创建一个仓库(远程仓库角色)创建本地git仓库并克隆仓库所有文件打开SourTree,用远程仓库地址(https地址以.git结尾,ssh以.ssh结尾)克隆到本地一个空文件夹中!这一步git就会自动在本地文件夹中创建一个本地git仓库,一般以.git文件夹的形式存在。添加文件并commit到本地git仓库,push到远程仓库在本地文件夹中随便添加一个文件test.txt,然后commit到本地git仓库中,然后pus
2021-11-26 22:38:19
3442
原创 Mac版SourceTree一旦push时输入的用户名密码错误,重新push就不再弹出用户名密码输入框问题
解决方法:删除原有账号记录步骤1:SourceTree->偏好设置(Preference)步骤2:高级->选中需要删除的账户信息->点击【移除】步骤3:重新push,弹出用户名和密码输出框????!
2021-11-26 22:14:29
1870
原创 Android蓝牙开发(1):发现设备失败,startDiscovery()返回结果为false
原因:需要配置相关权限,并且位置权限需要进行动态申请Android官方蓝牙指南https://developer.android.google.cn/guide/topics/connectivity/bluetooth#SettingUp配置权限:AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET" /> <!-- 蓝牙权限 --> <use
2021-11-21 22:21:09
4462
原创 Android自定义控件系列(1):选项控件
一、控件效果展示二、控件类:OptionsItemView.java/** * 选项Item * * @author : ZGS * Created on 2021/11/16 **/public class OptionItemView extends ConstraintLayout { private TextView tvLeft; private TextView tvRight; private ImageView ivRight; priva
2021-11-17 00:13:36
1391
原创 对称加密与非对称加密
对称加密秘钥相当于一份密码字典,具备对报文加、解密的能力。{ "A":1, "B":2, "C":3}报文加解密过程(对称加密)发送方:写好报文->使用秘钥进行加密->发送报文接收方:接收报文->使用秘钥进行解密->得到明文非对称加密公钥1.具备对报文进行加密的能力2.具备对“私钥加密过的报文”进行解密的能力3.公开的,谁都可以拿到私钥1.具备对报文进行加密的能力2.具备对“公钥加密过的报文”进行解密的能力3.私有的,从不外传,谁想要都不给!
2021-10-21 17:38:28
2822
原创 QMUI系列(1):引入、设置主题、基本使用
文章目录1.QMUI——Github引入依赖设置主题基本使用(以弹窗QMUIPopups为例)效果Java代码simple_list_item.xmlAndroidManifest.xml1.QMUI——GithubGithub:https://github.com/Tencent/QMUI_Androidqmuidemo地址:https://github.com/Tencent/QMUI_Android/tree/master/qmuidemo引入依赖implementation ‘com.qm
2021-10-10 17:19:31
5768
原创 com.gongwen:marqueelibrary设置垂直滚动
com.gongwen:marqueelibrary设置垂直滚动1.引入依赖2.添加混合库3.布局xml4.Java代码1.引入依赖implementation ‘com.gongwen:marqueelibrary:1.1.3’2.添加混合库在 gradle.properties 添加 android.enableJetifier=true3.布局xml <!--设置垂直:不要添加inAnimation和outAnimation即可!--> <c
2021-10-10 00:49:44
549
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人