Android闹钟UI

时间:2012-11-23 05:01:00

标签: android user-interface settings android-preferences alarm

enter image description here

我想弄清楚UI是如何为Android闹钟应用设计的。 这似乎是使用Holo Dark Theme。

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

正如@eric在以下答案之一的评论中提到的,我正在尝试重新创建一个类似于闹钟应用程序的界面。我不想发送从我的应用程序启动Alarm Manager的意图。

“标签”行怎么样?这与EditText视图非常相似。你可以在Views xml代码中包含PreferencesPreferenceScreen的组合吗?

ActionBar还有垂直管道,我不确定这是如何创建的,但是“完成”视图是ImageButton

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

3 个答案:

答案 0 :(得分:8)

股票闹钟应用程序为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>

偏好活动请参阅here,请注意,我引用的链接不是来自头版。

一些亮点:

  • 时间是简单android.preference.Preference,由TimePickerDialog支持。
  • Ringtoneandroid.preference.RingtonePreference
  • 的自定义实现
  • 重复是android.preference.ListPreferenc e。
  • 的自定义实现
  • 警报由静态类com.android.alarmclock.Alarms管理,使用内容提供商存储实际信息。
  • 自Android 4.0以来默认使用Holo主题,在其他Android版本上,您可能会看到不同的主题。请注意,app实现也可能由不同的Android版本或设备供应商更改。

答案 1 :(得分:2)

时间偏好没有特定的类。 只需创建一个简单的首选项,并在单击首选项时尝试打开TimePickerDialog。更改时间时更改首选项摘要。

答案 2 :(得分:0)

你想把这个代码行放在列表项目点击(时间点击)

startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));