草庐IT

安卓闹钟界面

coder 2023-12-19 原文

我想弄清楚 Android 闹钟应用程序的用户界面是如何设计的。 这似乎是在使用 Holo Dark Theme。

包含的屏幕截图是创建/编辑警报 Activity 屏幕。它看起来类似于 Android Settings .是这种情况吗?因为“打开闹钟”和“振动”行看起来像 ChexboxPreferences。 “铃声”行看起来像 RingtonePreference。 “时间”行呢?

正如@eric 在对以下其中一个答案的评论中提到的,我正在尝试重新创建一个与闹钟应用程序类似的界面。我不想发送从我的应用程序启动警报管理器的 Intent 。

“标签”行呢?它的功能很像 EditText View 。您可以在 PreferenceScreen xml 标记中组合使用 ViewsPreferences 吗?

此外,ActionBar 有一个垂直管道,我不确定它是如何创建的,但是“完成” View 是 ImageButton 吗?

我不完全相信它是首选项的组合,因为闹钟应用程序可以有多个闹钟,而不仅仅是一个闹钟。如果有多个警报并且您不使用多个 SharedPreferences 文件,那么创建一个内容提供程序来存储与多个警报相关的信息自然是有意义的。

最佳答案

股票闹钟应用程序是 open source ,所以请自行检查。

首选项布局参见 here :

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/set_alarm">
    <CheckBoxPreference android:key="on" 
        android:title="@string/enable"/>
    <Preference android:key="time" 
        android:title="@string/time"/>
    <com.android.alarmclock.AlarmPreference
        android:key="alarm" 
        android:title="@string/alert"
        android:ringtoneType="alarm"
        android:showDefault="false"
        android:showSilent="false" />
    <CheckBoxPreference android:key="vibrate" 
        android:title="@string/alarm_vibrate"/>
    <com.android.alarmclock.RepeatPreference
        android:key="setRepeat" 
        android:title="@string/alarm_repeat" />
    <EditTextPreference android:key="label"
        android:title="@string/label"
        android:dialogTitle="@string/label" />
</PreferenceScreen>

偏好 Activity 参见 here ,请注意,我引用的链接不是来自 head 修订版。

一些亮点:

  • Time 是一个普通的 android.preference.Preference,由 TimePickerDialog 支持。
  • Ringtoneandroid.preference.RingtonePreference 的自定义实现。
  • Repeat 是 android.preference.ListPreference 的自定义实现。
  • 警报由静态类管理com.android.alarmclock.Alarms使用 Content Provider 存储实际信息。
  • 从 Android 4.0 开始默认使用 Holo 主题,在其他 Android 版本上,您可能会看到不同的主题。请注意,应用程序的实现也可能因不同的 Android 版本或设备供应商而改变。

关于安卓闹钟界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13523350/

有关安卓闹钟界面的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. ruby - 如何让我的枚举器接受提要的界面? - 2

    来自docsforRubyv2.5e=[1,2,3].mappe.next#=>1e.feed"a"pe.next#=>2e.feed"b"pe.next#=>3e.feed"c"begine.nextrescueStopIterationp$!.result#=>["a","b","c"]end但是当我通过Enumerator.new创建我的枚举时呢?#anaivereworkoftheaboveenume2=Enumerator.newdo|y|[1,2,3].eachdo|x|y1e2.feed"a"pe2.next#=>2e2.feed"b"pe2.next#=>3e2.fee

  3. 基于51单片机、DS1302时钟模块的电子闹钟设计 - 2

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、设计原理1.DS1302介绍2.闹钟音乐播放原理二、程序设计1.DS1302.h2.ds1302.c3.music.h4.main.c三、电路图四、运行结果1.proteus仿真2.开发板实验五、总结六、附件提示:以下是本篇文章正文内容,下面案例可供参考一、设计原理1.DS1302介绍DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。该芯片采用普通32.768kHz晶振,DS1302工作时功耗很

  4. (一)专题介绍:移动端安卓手机改造成linux服务器&linux服务器中安装软件、部署前后端分离项目实战 - 2

    快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目

  5. 嵌入式学习之QT学习----3 制作简单的QT界面(如:QQ登录界面) - 2

    1、创建一个QT工程newproject—>Application—>QtWidgetsApplication—>choose…(注意不要有中文路径)填写名称(我写的名称为class2)和创建路径(D:\qt\qt_demo\class2)—>填写类名,这里基类要选择“QWidget”,这样一个QT工程就创建好啦。qt的移植性非常强,一套代码我们不用修改太多,直接通用所有的平台。说明:QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏,类似于一般的应用程序的主窗口。QWidget:它是所有具有可视界面的基类,选择QWidget创建的界面对各种界面组件都可以支持。QDialog

  6. javascript - 用户界面 - 内联帮助覆盖 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我有一个客户在寻找类似于Facebook和Google用来突出显示界面变化的类型的内联帮助系统。这是UI模式中的示例:http://ui-patterns.com/users/1/collections/38/entry/5759在推介自定义解决方案之前,我真的需要了解是否有任何现有的库或服务可提供此功能。我在StackOverflow和Google(以及其他网站)上

  7. javascript - jQuery 用户界面 : Uncaught TypeError: Cannot read property 'display' of undefined - 2

    我正在尝试使用jqueryajax获取数据,一切正常,我得到了我想要的,但我无法显示它,因为我收到未捕获的类型错误:无法读取未定义的属性“显示”。这里是代码。有什么想法吗?/**Getthedatafromtheajaxcallanddisplayadialog*/functionCreateDialog(email){//getthedatafromtheajaxcallvarpromise=AjaxSubscribe(email)//ifdataareavailable,showthedialogpromise.success(function(data){//dataisasim

  8. javascript - Angular 用户界面 TinyMCE : How set default settings - 2

    我正在使用angularuitinymce扩展。我想知道如何设置我可以在常规JavaScript中执行的以下设置。tinymce.init({selector:"textarea",height:250,theme:"modern",plugins:["advlistautolinklistslinkimagecharmapprintpreviewhranchorpagebreak","searchreplacewordcountvisualblocksvisualcharscodefullscreen","insertdatetimemedianonbreakingsavetable

  9. javascript - 扩展 TypeScript 的控制台界面 - 2

    我想在window.console全局添加一个对象。importReactotronfrom'reactotron-react-native';window.console.tron=Reactotron;尽管当我这样做时,TypeScript会提示新对象:errorTS2339:Property'tron'doesnotexistontype'Console'.我想扩展控制台界面:interfaceConsoleWithTronextendsConsole{tron:any};不过,我不确定如何将这个新界面分配给我的全局控制台对象?帮助会很棒!谢谢。 最佳

  10. QtUI界面被QProcess阻塞(已解决) - 2

    在Qt开发中经常会使用到一个等待界面,很巧,这周开发就遇到了,思索了半天,还是问问度娘,网上的答案很乱。浅浅记录一下首先我制作了一个按钮,按下按钮的时候会有一个弹窗选择,如果选择“YES”就往下执行等待画面,在等待中我得在Linux下打包指定的文件到指定目录。这里我用的是QProcess来操作。打包用到的命令:tar-czf 路径/文件名.tgz 目标文件现在我们来制作一个简单的UI界面 UI制作Ok,只需要把gif图片Setmovie到QLabel上就行,封装起来随时调用。QMovie*pMovie=newQMovie(":/image/Image/loading.gif");ui->loa

随机推荐