Android Bitmap.createBitmap()用法示例
Android Bitmap.createBitmap() 用法全解析在 Android 开发中,Bitmap.createBitmap() 是一个非常强大的方法,可以用来 创建新的位图,并且可以 进行旋转、缩放、平移、镜像翻转、裁剪等操作。本篇文章将详细介绍 Bitmap.createBitmap() 的各种用法。 1. Bitmap.createBitmap() 基础用法1.1 创建一个空白 Bitmap1val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) width:Bitmap 的宽度。 height:Bitmap 的高度。 Bitmap.Config.ARGB_8888:像素格式,支持透明度。 用途:用于创建空白的 Bitmap,然后通过 Canvas 进行绘制。 2. 旋转(Rotate)如果拍照后的图片方向不正确,可以使用 Matrix 进行旋转。 12345fun rotateBitmap(bitmap: Bitmap, degree: Int):...
通知的用法示例
Android 通知(Notification)完全指南记得在测试APP的通知功能时,要在手机上把关于通知的权限打开!!! 1. 通知的作用 用户提示:告知用户重要事件,如新消息、下载进度等。 交互入口:用户点击通知可跳转至应用的特定页面。 持续展示:某些通知需要常驻状态栏,如后台任务提醒。 2. 关键组件 NotificationManager:管理通知的发布、更新、取消。 NotificationCompat.Builder:构建通知,确保兼容低版本 Android。 NotificationChannel(Android 8.0+):管理通知的重要性、声音、震动等。 PendingIntent:设定用户点击通知后的操作。 3. 创建通知3.0 权限在 AndroidManifest.xml 添加权限: 1<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> 3.1 创建通知频道(Android 8.0+ 必须)1234567891011if...
ContentProvider+ContentResolver+UriMatcher+SQLite的用法示例
1. 引言在 Android 中,数据共享是应用开发中非常重要的一部分。为了在不同应用之间共享数据,Android 提供了 ContentProvider 机制,通过该机制,应用能够访问其他应用的数据或向其他应用提供自己的数据。结合 SQLite 数据库、ContentProvider、ContentResolver 和 UriMatcher,我们可以方便地实现数据的持久化存储、查询、插入、更新和删除操作,同时还能够保证数据访问的安全性。 本文将介绍如何结合 SQLite 数据库、ContentProvider、ContentResolver 和 UriMatcher 实现一个完整的应用数据共享系统,并通过一个具体的示例进行详细说明。 2. 基本概念2.1 SQLite 数据库SQLite 是 Android 中推荐的本地数据库,它是一个轻量级的关系型数据库管理系统。SQLite 可以嵌入到应用中,支持 SQL 查询、数据持久化存储。 优点:开销小、无需服务器,适合单机应用。 缺点:功能相对较简单,适用于小型应用和中小规模的数据存储。 2.2...
RecycleView使用示例
🚀 RecyclerView 进阶优化指南相比之前的版本,这次的改进包括: ✅ 使用 DiffUtil 优化数据更新(避免 notifyDataSetChanged()) ✅ 使用 ViewBinding 简化 ViewHolder 代码 ✅ 封装 Adapter 支持 MutableList(支持增删改查) ✅ 优化 onClick 事件,让 RecyclerView 更易扩展 ✅ 支持 Grid/瀑布流/线性布局 1️⃣ 添加 RecyclerView 依赖确保你的 build.gradle 添加了: 1234dependencies { implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.viewbinding:viewbinding:7.3.1' // 使用 ViewBinding} 2️⃣ 在 activity_main.xml 中添加...
ContentResolver的增删改查方法示例
Android 中 ContentResolver 的增删改查详解ContentResolver 是 Android 提供的 API,用于在不同应用程序之间访问和操作数据,通常与 ContentProvider 一起使用。它提供 增(insert)、删(delete)、改(update)、查(query) 操作,常见于访问系统数据库(如通讯录、媒体库等)或应用自定义的数据库(如日记本、笔记等)。 📌 使用 ContentResolver 的步骤 确定 ContentProvider 提供的数据 URI(content:// 格式) 获取 ContentResolver 对象 执行增、删、改、查操作 处理权限(如果是访问系统数据) 关闭 Cursor 以释放资源(仅 query 需要) 💡 1. 获取 ContentResolver在 Activity 或 Fragment 中: 1val contentResolver = context.contentResolver 在 Service 中: 1val contentResolver =...
SQLite用法
SQLite 是一种轻量级的嵌入式数据库,在 Android 中用于存储结构化数据。你可以通过 SQLiteOpenHelper 来管理数据库的创建、升级、和版本管理。以下是使用 SQLite 的基本步骤: 1. 创建数据库和表使用 SQLiteOpenHelper 创建数据库以及表结构。这个类会帮助你创建数据库、执行表的升级、降级等操作。 创建 SQLiteOpenHelper 类123456789101112131415161718192021222324252627282930import android.content.Contextimport android.database.sqlite.SQLiteDatabaseimport android.database.sqlite.SQLiteOpenHelperclass MyDatabaseHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { companion...
Room+ViewModel+LiveData一起使用的用法
在 Android 开发中,Room、ViewModel 和 LiveData 经常一起使用,以实现 MVVM 架构,并提供持久化数据存储、生命周期感知的数据管理和自动更新 UI 的能力。 📌 1. 主要作用 组件 作用 Room(数据库) 提供 SQLite 的抽象层,管理本地数据存储 ViewModel 管理 UI 相关的数据,确保数据在配置变更(如旋转屏幕)时不会丢失 LiveData 观察数据变化,并在 UI 组件生命周期内自动更新 🚀 2. 使用 Room + ViewModel + LiveData 的完整示例📌 功能:我们实现一个简单的待办事项(ToDo List)应用,可以: 增删查改任务,数据存储在 Room 数据库中。 使用 LiveData 让 UI 自动更新,而不需要手动刷新。 ViewModel 负责管理数据,避免 Activity 直接操作数据库。 📌 3. 创建 Room 数据库(1)定义 Entity(数据库表)123456789import androidx.room.Entityimport...
ViewModel用法
ViewModel 是 Android 架构组件之一,用于管理 UI 相关的数据,并在 配置更改(如屏幕旋转)时保持数据不丢失。 🔹 1. 添加 ViewModel 依赖在 build.gradle.kts(模块级)中添加: 123dependencies { implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")} 🔹 2. 创建 ViewModel(1)基础 ViewModel123456789import androidx.lifecycle.ViewModelclass CounterViewModel : ViewModel() { var count = 0 // ViewModel 变量(Activity 重建后不会丢失) fun increment() { count++ }} 🔹 3. 在 Activity/Fragment...
Room用法
Room 是 Android 官方推荐的数据库框架,它是 SQLite 的抽象封装,提供了更便捷的数据库操作方式,支持 Kotlin 协程和 LiveData。以下是 Room 的基本使用方法: 1. 添加 Room 依赖在 build.gradle.kts(模块级)中添加 Room 相关依赖: 12345678dependencies { val room_version = "2.6.1" // 确保使用最新版本 implementation("androidx.room:room-runtime:$room_version") kapt("androidx.room:room-compiler:$room_version") // 用于注解处理器 implementation("androidx.room:room-ktx:$room_version") // 支持 Kotlin 协程} 如果项目使用 Kotlin Symbol...
startActivity和registerForActivityResult的用法
在 Android Kotlin 开发中,startActivity 和 registerForActivityResult 是启动新 Activity 并处理返回结果的两种方式。 1. 使用 startActivitystartActivity 适用于 不需要获取返回值 的情况,例如从 MainActivity 跳转到 SecondActivity: 示例:启动新 Activity12val intent = Intent(this, SecondActivity::class.java)startActivity(intent) 如果你需要传递数据: 1234val intent = Intent(this, SecondActivity::class.java).apply { putExtra("key", "Hello, SecondActivity!")}startActivity(intent) 在 SecondActivity 中获取: 1val data =...