自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Android10存储权限开启指南

new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE},//需要请求的权限数组,包含读取和写入外部存储两项权限。if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//对于Android 6.0以下版本,直接返回 true,因为这些版本采用安装时权限机制,默认已授权。

2025-11-20 17:41:55 948

原创 Android界面中版本号设置与获取

txt_version.setText("版本号: " + versionName);versionCode 1 // 版本代码,整数,用于内部版本控制。versionName "1.0.0" // 版本名称,字符串,显示给用户。- versionName :字符串类型,显示给用户的版本信息,通常格式为 x.y.z。txt_version.setText("版本号: 未知");- versionCode :整数类型,用于应用内部版本控制和升级判断。// 获取并显示版本号。

2025-11-03 10:16:05 305

原创 Android数据存储SharedPreferences和File存储

Toast.makeText(this, "写入成功", Toast.LENGTH_SHORT).show();Toast.makeText(this, "写入成功", Toast.LENGTH_SHORT).show();Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();android:text="登录" />

2025-10-23 15:48:32 675

原创 Android基础编程-Activity创建及跳转

/两个参数,第一个参数是当前Activity,第二个参数是跳转的Activity。//绑定item事件用于跳转详情页面,并携带学生名字参数。//Activity跳转的中介是Intent。//传递参数第二种方式 使用Bundle。studentList.add("张三");studentList.add("李四");studentList.add("王五");//传递参数第三种方式 传递对象。//启动新的Activity。//创建Intent用于跳转。//创建Intent对象。//传递参数第一种方式。

2025-10-14 16:48:30 659

原创 Android联系人列表搜索功能实现

/ 修改为使用mFilteredItems。// 修改为使用mFilteredItems。if (mFilteredItems.size() <= position) { // 修改为使用mFilteredItems。// 过滤后的联系人列表。// 7. 修改fillList_imObj方法,添加搜索过滤应用。// 4. 在onCreateView中初始化搜索框并添加监听器。// 个人联系人搜索。// 8. 修改列表点击事件,使用过滤后的列表。// ... 现有代码 ...// 根据搜索内容过滤联系人。

2025-09-29 15:16:09 543

原创 Qt目录检测器(桌面应用,检测标准目录和待检测目录的区别)

ui->resultTextEdit->append(QString("\n待检测目录中多出的文件 (%1 个):\n").arg(extraFiles.size()));ui->resultTextEdit->append(QString("- %1 (完整路径: %2)").arg(file).arg(fullPath));ui->resultTextEdit->append(QString("- %1 (完整路径: %2)").arg(file).arg(fullPath));

2025-09-24 17:01:10 767

原创 Android文件目录检测器app的开发

tvStandardPath.setText(String.format(getString(R.string.standard_file_path), "未选择"));"选择标准目录" : "选择待检测目录");tvTargetPath.setText(String.format(getString(R.string.target_file_path), "未选择"));Toast.makeText(this, "请先选择标准文件和待检测文件", Toast.LENGTH_SHORT).show();

2025-09-23 14:48:15 933

原创 Android底部导航栏文字替换为可变图标

为了让图标在选中和未选中状态下显示不同的颜色或样式,我们可以创建图标选择器文件。我的图标选择器 ( tab_about_selector.xml )消息图标选择器 ( tab_msg_selector.xml )联系人图标选择器 ( contact_selector.xml )现在选中底部图标和未选中呈现两种图标。1. 修改底部导航栏布局文件。2. 创建图标选择器(可选)

2025-09-19 15:20:45 456

原创 安卓应用目录检测工具解析

sb.append("\n执行时间: ").append(getExecutionTime()).append("ms\n");sb.append("\n失败项 (").append(failureList.size()).append("):\n");sb.append("成功项 (").append(successList.size()).append("):\n");Log.d(TAG, "安装目录检测结果:\n" + result.toString());

2025-09-15 16:51:43 518

原创 Androidstudio的logcat简单两步使用

如图的一行打开小猫,搜索。

2025-09-12 15:57:54 103

原创 实现GridView滑动时,定时刷新当前屏幕可见人员列表信息,获取当前屏幕可见人员列表的人员信息

Log.d("comfmemlist test", "可见范围: " + firstVisiblePosition + " - " + lastVisiblePosition);Log.d("comfmemlist test", "刷新成员信息: " + member.ui64Id);Log.d("comfmemlist test", "刷新可见人员信息开始");Log.d("comfmemlist test", "刷新可见人员信息完成");// 只处理有效的人员(排除"没有更多了"等特殊项)

2025-09-12 15:17:30 591

原创 Android studio快速生成Android Debug包的3种方法

打开Android Studio并加载你的项目( d:\Projects\java-openRtComm-v3 )点击菜单栏的 Build > Build Bundle(s) / APK(s) > Build APK(s)构建完成后,debug包也会保存在 app\build\outputs\apk\debug\ 目录中。构建完成后,debug包会生成在 app\build\outputs\apk\debug\ 目录下。点击通知中的 locate 按钮,即可打开包含debug包的文件夹。

2025-09-08 11:14:47 351

原创 Android状态背景色切换实战,人员列表中的人员根据被选中状态来切换底色

如果成员未被选中但正在发言 ( iConfMemType == CONST_confMemType_speaker ),使用 item_speaking.xml (浅蓝色背景)如果成员被选中 ( isSelected() ),使用 item_selected.xml (蓝色背景)// 发言中但未被选中的状态 - 使用浅蓝色背景 (#abdaff)// 未发言且未被选中的状态 - 使用白色背景 (#FFFFFF)//1.未发言状态的样式 (item_normal.xml)根据三种状态设置不同背景色。

2025-09-07 18:52:26 373

原创 TextView转ImageView按钮优化实战,实现图标按钮的点击切换显示图标的功能

/ 停止发言状态,显示关闭麦克风图标。// 请求发言状态,显示打开麦克风图标。// 移除背景颜色设置,保持透明。// 移除背景颜色设置,保持透明。android:text="发言"//现在的ImageView。//原来的TextView。

2025-09-07 18:39:33 346

原创 Android视频容器与按钮布局优化技巧,点击右侧按钮会出现新的按钮,再点击会隐藏

Toast.makeText(getActivity(), "按钮1被点击", Toast.LENGTH_SHORT).show();Toast.makeText(getActivity(), "按钮2被点击", Toast.LENGTH_SHORT).show();Toast.makeText(getActivity(), "按钮3被点击", Toast.LENGTH_SHORT).show();android:text="按钮3"-- 视频下方的按钮容器,初始隐藏 -->-- 添加几个示例按钮 -->

2025-09-04 21:55:12 714 1

原创 Android侧滑菜单动画实现指南

/ 设置动画持续时间。// 设置动画持续时间。// 重置translationX,避免下次显示时位置错误。// 如果宽度为0(尚未测量),可以使用一个预估宽度或从资源中获取。menuWidth, // 起始位置(屏幕右侧外)menuWidth // 结束位置(屏幕右侧外)0, // 起始位置(正常位置)// 添加动画监听,动画结束后再隐藏视图。0 // 结束位置(正常位置)// 设置初始位置在屏幕右侧外。// 获取右侧菜单的宽度用于动画计算。// 创建从右侧滑入的动画。// 创建向右滑出的动画。

2025-09-04 11:16:05 358

原创 Android列表单选中状态管理实战

System.out.println("项目 " + i + " (" + item.getName() + "): " +"已选中" : "未选中"));System.out.println("再次点击项目3(取消选中):");"\",启用操作按钮");System.out.println("清除所有选中状态:");System.out.println("选中项目1:");System.out.println("选中项目3:");System.out.println("选中项目0:");

2025-09-03 21:34:45 702

原创 Andriod使用 ViewHolder 模式缓存视图引用,避免重复调用 findViewById,提高列表滚动性能。

/调用 notifyDataSetChanged() 通知适配器数据已更改,需要刷新界面。//使用 LayoutInflater 从 layoutId 创建新的视图。//如果 convertView 不为 null(视图被回收)//直接从视图标签中获取之前保存的 ViewHolder。//查找并保存视图中的组件引用(头像、姓名、状态)//获取指定位置的 ConfMember 对象。// 关键: 同步选中状态。//包含头像图片、姓名文本和状态文本的引用。//创建新的 ViewHolder 实例。

2025-09-03 21:25:48 179

原创 Android studio实现图标Lottie动画切换功能

/ 初始化confMem_icon。implementation 'com.airbnb.android:lottie:5.2.0'动画依赖//在build.gradle。// 添加Lottie动画视图。// 添加confMem_icon的引用变量。// 首先检查是否已经存在lottie视图,如果不存在则需要修改布局文件添加。// 注意:这里使用的是像素值,如果需要dp单位,需要进行转换。

2025-09-03 21:23:54 255 1

原创 Android studio实现图标切换功能

/ 初始化confMem_icon。// 添加confMem_icon的引用变量。// 初始化confMemListContainer和confMem_btn。//btnShowPopup.setText("人员");//btnShowPopup.setText("收起");// ... 其他现有代码 ...// 按钮文字改为"人员"// 按钮文字改为"收起"// ... 现有代码 ...// 切换到原始图标。// 设置列表适配器。// ... 其他现有代码 ...// 切换列表可见状态标志。

2025-09-03 21:19:08 263

空空如也

空空如也

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

TA关注的人

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