Android

分类下相关文章

升级 Android App API 级别

有近一年没有打开 Google Play Console 了,最近打开,发现一堆警告信息,大部分是: 请在 2023年8月31日之前更新您的目标 API 级别,以发布应用的更新 警告内容 我们检测到您的应用以旧版 Android 为目标平台。为了向用户提供安全可靠的使用体验,Google Play 要求所有应用都必须符合目标 API 级别要求。 自 2023年8月31日起,如果您的目标 API 级别不是在最新 Android 版本发布日期前 1 年内推出的,您将无法更新应用。 如需继续更新应用,请确保您的应用以 Android 13(API 级别 33)为目标平台。 目前最新的 andro ...

阅读全文...

Stock Price Calculator: Privacy policy

Welcome to the Stock Price Calculator app for Android! This is an Android app developed by Zhongwei Sun. The app is available on Google Play. As an avid Android user myself, I take privacy very seriously. I know how irritating it is when apps collect your data without your knowledge. I hereby state, ...

阅读全文...

Proportion Calculator: Privacy policy

Welcome to the Proportion Calculator app for Android! This is an Android app developed by Zhongwei Sun. The app is available on Google Play. As an avid Android user myself, I take privacy very seriously. I know how irritating it is when apps collect your data without your knowledge. I hereby state, ...

阅读全文...

Desktop Todo: Privacy policy

Welcome to the Desktop Todo app for Android! This is an Android app developed by Zhongwei Sun. The app is available on Google Play. As an avid Android user myself, I take privacy very seriously. I know how irritating it is when apps collect your data without your knowledge. I hereby state, to the be ...

阅读全文...

Android MPAndroidChart 实时曲线使用时间作为 X 轴

MPAndroidChart 确实强大,但是文档太少,需要自己踩坑。 在基于 MPAndroidChart 绘制手环传输过来的实时数据时,发现用时间(小时:分钟)作为横轴坐标,网上找到的示例代码都不好使。 不支持时间戳 如果直接使用 System.currentTimeMillis() 生成基于毫秒的时间戳作为 x 坐标,会发现 MPAndroidChart 根本无法展示,我不确定问题出在哪里。有两个推测: 数值太大,组件不支持 x 轴可能设置了刻度 (这个可能无关) 基于时间差解决 而使用简单一秒加 1 的计数器,却可以完美的展示实时需求,唯一的问题是,这种计数器的值无法转换为时间。 ...

阅读全文...

Android MPAndroidChart 动态显示曲线数据

MPAndroidChart 的示例大多数静态图表,没有实时显示曲线的变化的示例。 找到一个官方的说明: https://github.com/PhilJay/MPAndroidChart/wiki/Dynamic-&-Realtime-Data there are various methods that allow to either add or remove Entry objects to an existing DataSet or DataSet objects to/from an existing ChartData object 看来确实可以实现动态修改。 添加 ...

阅读全文...

Android 基于 PopupWindow 实现右下角的悬浮额外指标数值

PopupWindow 介绍 This class represents a popup window that can be used to display an arbitrary view. The popup window is a floating container that appears on top of the current activity. PopupWindow 会浮动在当前 Activity/Fragment 之上。 相对于 AlertDialog,PopupWindow 的实现更灵活。 可以自定义位置。例如显示在指定按钮的下方,上方等位置。 展现形式更自由 ...

阅读全文...

Android 图表库 MPAndroidChart

为了在 Android 平板上实时展示血氧和心率的曲线图,需要找一个三方的 chart 库。 Android Chart 库的选型 https://github.com/PhilJay/MPAndroidChart , 37K star 但是 4 年前就不再更新了。但是实测并没有兼容性问题 (Android 12, 及华为鸿蒙3) https://github.com/diogobernardino/williamchart , 这个确实很漂亮,而且是 kotlin 实现的,但是看起来不如 MPAndroidChart 灵活。 MPAndroidChart 的使用 添加依赖 ...

阅读全文...

Android Kotlin 点击按钮跳转至系统语言切换设置页

需求 在 Android 多语言 App 内切换语言,为了节省开发工作量,直接复用系统的语言切换功能。 即,点击一个 App 内的语言设置按钮,跳转至 Android 系统的语言切换功能页。 实现 import android.content.Intent import android.provider.Settings binding.appSetting.setOnClickListener { val intent = Intent(Settings.ACTION_LOCALE_SETTINGS) startActivity(intent) } 效果 效果非常好。而且 ...

阅读全文...

android AppCompatButton 设置按下时显示的背景图片

即一个 Android Button 在正常显示时,跟按下时,显示不同的背景图片。 通常按下时显示的是另一张高亮的图片。 之前是通过点击事件实现的,无意发现 drawable selector 可以方便的配置实现,这样代码也清晰了很多。 drawable selector 右键点击 res/drawable 目录,选择新建一个 Drawable Resource File,Root Element 是 selector。 命名为 button_bg.xml <?xml version="1.0" encoding="utf-8"?> < ...

阅读全文...

dp, sp, px 与 Android 界面布局自适应

之前写 Android 平板 App,由于没有正经写过 Android 界面布局,为了图省事, 直接用 px 像素做的布局,及字号大小设置。 好在平板是我们指定的型号,屏幕尺寸,及像素。但是自从发货到客户手中之后, 我就非常担心,一旦这款平板停产,换个更高分辨率的平板怎么办? 为了消除焦虑,我了解了一下 Android 布局的基础。 总结起来一句话: 字号用 sp,宽高用 dp。 问题简化 图片宽度用什么单位? dp 字号用什么单位?sp dp 是什么? dp 是怎么换算为 px 的? dp 是怎么换算为 px 的 android 中,dp 在渲染前,都会被转换成 px。 px = den ...

阅读全文...

Android 点击设置菜单条目,基于 DialogFragment 实现弹窗

DialogFragment 在 android 3.0 时被引入。是一种特殊的 Fragment,用于在 Activity 的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。在 DialogFragment 产生之前,创建对话框:一般采用 AlertDialog 和 Dialog。注:官方不推荐直接使用 Dialog 创建对话框。使用 DialogFragment 来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和 Fragment 有着基本一致的声明周期。且 DialogFragment 也允许开发者把 Dialog 作为内嵌的组件进行重用,类 ...

阅读全文...

Android 点击按钮显示悬浮菜单

需求 点击 Android 屏幕上的设置按钮,弹出一个悬浮菜单,显示具体的细分配置功能。例如: 时间设置 语言设置等 Material Design Menu 组件 https://github.com/material-components/material-components-android/blob/master/docs/components/Menu.md 也可用过输入框的下拉列表。 overflow, context, popup 的区别 Dropdown Menu 又细分为几种类型: Overflow menu: 溢出菜单,即 Android 界面右上角三个点,点开后显示 ...

阅读全文...

android AppCompatButton 设置背景图片

遇到一个奇怪的问题,在 Android 项目中给 Button 设置背景图片,总是不生效。 <Button android:background="@drawable/normal" android:text="OK"> </Button> 改用 androidx.appcompat.widget.AppCompatButton <androidx.appcompat.widget.AppCompatButton android:background="@drawable/normal" and ...

阅读全文...

Android APP 设置版本号,并显示在界面上

由于给客户定制的 Android APP 不需要发布到应用商店,没有一套统一的版本控制渠道。 只能先通过人肉查看版本号的方式,将版本号显示在界面上。 设置版本号 app build.gradle 文件: 通过 versionCode 和 versionName 来配置 App 的版本号。 android { namespace 'com.sunzhongwei.app' compileSdk 33 defaultConfig { applicationId "com.sunzhongwei.app" minSdk 2 ...

阅读全文...