Программирование виджетов рабочего экрана
Создание виджета, отображающиего текущую дату, день недели и месяц. Использование конфигурационных окон для настройки виджетов. Открытие окна конфигурации для настройки цвета фона и шрифта. Взаимодействие виджета с другими элементами платформы Android.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 25.10.2017 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Цель
Научиться создавать пользовательские виджеты для рабочих экранов.
Научиться использовать конфигурационные окна для настройки виджетов.
Уметь понимать схемы взаимодействия виджета с другими элементами платформы Android.
Разработать эффективные приложения с учетом аппаратных ограничений мобильных устройств.
Уметь реализовывать логику работы приложения с учетом специфики платформы Android.
Задание
Вариант №9
Создать виджет отображающии? текущую дату: День недели и месяц должен отображаться на русском языке. По нажатию на виджет должно открываться окно конфигурации для настрои?ки цвета фона и шрифта. Цвет и шрифт выбирается с помощью элемента Spinner (минимальное количество вариантов для каждого параметра не менее 5).
виджет окно экран
Результат
Листингпрограммы
Main_activity.xml
package com.example.lab9v9;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.widget.RemoteViews;
public class MainActivity extends AppWidgetProvider {
private static SimpleDateFormat formatter = new SimpleDateFormat("EEEEEEEEE\nd MMM yyyy" );
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
//String now = formatter.format(new Date());
//RemoteViews updateViews = new RemoteViews(
//context.getPackageName(), R.layout.activity_main);
//updateViews.setTextViewText(R.id.text, now);
//appWidgetManager.updateAppWidget(appWidgetIds, updateViews);
SharedPreferences sp = context.getSharedPreferences(
ConfigActivity.WIDGET_PREF, Context.MODE_PRIVATE);
for (int id : appWidgetIds) {
updateWidget(context, appWidgetManager, sp, id);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
Editor editor = context.getSharedPreferences(
ConfigActivity.WIDGET_PREF, Context.MODE_PRIVATE).edit();
for (int widgetID : appWidgetIds) {
editor.remove(ConfigActivity.WIDGET_BACKGROUND_COLOR + widgetID)
editor.remove(ConfigActivity.WIDGET_TEXT_COLOR + widgetID);
}
editor.commit();
}
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
}
public static void updateWidget(Context context,
AppWidgetManager appWidgetManager, SharedPreferences sp, int widgetID) {
// TODO Auto-generated method stub
int widgetBackground = sp.getInt(ConfigActivity.WIDGET_BACKGROUND_COLOR + widgetID, 0);
int widgetTextColor = sp.getInt(ConfigActivity.WIDGET_TEXT_COLOR + widgetID, 0);
String now = formatter.format(new Date());
// Настраиваем внешний вид виджета
RemoteViews widgetView = new RemoteViews(context.getPackageName(),
R.layout.activity_main);
widgetView.setTextViewText(R.id.text, now);
widgetView.setTextColor(R.id.text, widgetTextColor);
widgetView.setInt(R.id.text, "setBackgroundColor", widgetBackground);
Intent configIntent = new Intent(context, ConfigActivity.class);
configIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
PendingIntent pIntent = PendingIntent.getActivity(context, widgetID, configIntent, 0);
widgetView.setOnClickPendingIntent(R.id.text, pIntent);
// виджет
appWidgetManager.updateAppWidget(widgetID, widgetView);
}
}
configActivity.java
publicvoid onClick(View v) {
Spinner sp1 = (Spinner)findViewById(R.id.spinner1);
Spinner sp2 = (Spinner)findViewById(R.id.spinner2);
int bgrcol = getColor(sp1.getSelectedItemPosition());
int txtcol = getColor(sp2.getSelectedItemPosition());
SharedPreferences sp = getSharedPreferences(WIDGET_PREF, MODE_PRIVATE);
Editor editor = sp.edit();
editor.putInt(WIDGET_BACKGROUND_COLOR + widgetID, bgrcol);
editor.putInt(WIDGET_TEXT_COLOR + widgetID, txtcol);
editor.commit();
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
MainActivity.updateWidget(this, appWidgetManager, sp, widgetID);
setResult(RESULT_OK, resultValue);
finish();
}
}
Activity_main.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#6600ff00"
android:orientation="vertical">
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/hello"
android:textColor="@android:color/black"
android:textSize="18sp"/>
</LinearLayout>
config.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/color"/>
<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/color"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="@string/ok">
</Button>
</LinearLayout>
Вывод
В ходе лабораторной работы были получены навыки создания пользовательских виджетов для рабочих экранов, а также умение понимать схемы взаимодействия виджета с другими элементами платформы Android.
Размещено на Allbest.ru
...Подобные документы
Интерфейс и функции виджетов, используемые в разработке программные средства. Элементы: часы, календарь, заметки, сервер. Формирование кроссплатформенного менеджера виджетов рабочего стола, обладающего интерфейсом на нескольких операционных системах.
дипломная работа [210,4 K], добавлен 06.07.2015Знакомство с особенностями и этапами разработки приложения для платформы Android. Рассмотрение функций персонажа: бег, прыжок, взаимодействие с объектами. Анализ блок-схемы алгоритма генерации платформ. Способы настройки функционала рабочей области.
дипломная работа [3,4 M], добавлен 19.01.2017Принципы работы стандартных диалоговых окон открытия, закрытия, сохранения файла. Особенности использования общего диалога для функций шрифтов, цветов, печати, справочной системы. Обобщение методов настройки цвета, фона формы. Анализ метода ShowColor.
задача [75,3 K], добавлен 25.09.2010Анализ видов существующих корпоративных порталов. Разработка архитектуры и структуры корпоративного портала в соответствии с требованиями. Установка и настройка программного обеспечения. Общие настройки портала, управление меню и настройка виджетов.
дипломная работа [4,8 M], добавлен 19.01.2017Средства разработки развивающих и обучающих игр и используемой программы. Среда выполнения и Dalvik. Разработка приложения для платформы Android. Графический интерфейс и обработка касаний экрана. Разработка экранов приложения и их взаимодействия.
дипломная работа [2,1 M], добавлен 18.01.2016Google Android как программный стек для мобильных устройств, который включает операционную систему, программное обеспечение промежуточного слоя и пользовательские приложения. Структура платформы и ее основные элементы: ядро, программы, каркас приложений.
реферат [600,4 K], добавлен 08.01.2015Элементы интерфейса Windows NT. Средства взаимодействия пользователей с системой. Выполнение настройки компьютера. Ярлыки на рабочем столе. Типа окон: приложений, документов и диалоговые окна. Интерфейс администратора сети. Понятие web-браузера.
презентация [8,8 K], добавлен 23.10.2013Базовые разделы BIOS и основные доступные возможности для его настройки: Standard CMOS Features, Advan-ced BIOS Features, Chipset features setup и Integrated Peripherals. Настройки, определяющие быстродействие компьютера, режимы работы его компонентов.
статья [17,4 K], добавлен 03.04.2010Разработка открытой мобильной платформы Android. Первое устройство, работающее под управлением Android. Магазин приложений "Google Play". Полноценные программы навигации, редакторы офисных документов и синхронизационные утилиты. Рост вирусной активности.
презентация [58,8 K], добавлен 29.10.2014Структура сайта, выполненного при помощи HTML-кода и CSS-таблиц. Создание базы данных. Описание главной страницы. Форма для оформления заказа. Скрипт, выводящий дату и день недели. Проектирование CSS-документа (файла) для оформления страниц сайта.
курсовая работа [570,7 K], добавлен 30.12.2013Определение окна. Что можно делать в окнах? Термины, употребляемые в описании работы многооконного интерфейса. Виды окон в графическом интерфейсе. Открытие и закрытие окон в различных операционных системах. Вызов контекстного меню нескольких объектов.
реферат [167,8 K], добавлен 02.04.2010Характеристика разных семейств шрифтов в Windows. Получение хендла шрифта. Функции для работы со шрифтами. Создание собственных шрифтовых ресурсов. Средства для настройки приложений. Работа с принтером: получение контекста устройства, печатание.
курс лекций [34,5 K], добавлен 24.06.2009Особенности сотовой сети. Использование функции телефонии DTMF Callback на устройствах с Android. Обзор рынка VoIP связи и услуги международного роуминга. Проведение тестирования рабочего прототипа приложения с функцией телефонии DTMF Callback.
дипломная работа [1,3 M], добавлен 08.02.2017Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.
контрольная работа [1,8 M], добавлен 11.07.2016Создание, настройка камер, настройки основанных параметров визуализации и использования различных специальных эффектов в графическом пакете 3ds Max 2008. Особенности интерфейса программы. Типы специальных эффектов и их применение. Добавление заднего фона.
курсовая работа [2,1 M], добавлен 03.06.2013Использование языка программирования Delphi для записи программ, представляющих собой последовательность инструкций. Классы и директивы в объектно-ориентированном программировании. Разработка демонстрационной программы. Процесс настройки Windows XP.
дипломная работа [917,4 K], добавлен 15.01.2014Структура и архитектура платформы Android. Основные достоинства и недостатки операционной системы Android. Среда разработки Eclipse, платформа Java. Подготовка среды разработки. Вкладка "Погода", "Курс валют", "Новости". Просмотр полной новости.
дипломная работа [1,0 M], добавлен 11.07.2014Реализация шаблона проектирования c основными принципами GUI. Обзор простых Swing-виджетов. Первая программа и добавление кнопки. Диспетчер компоновки Layout Manager. Установка размера компонента. Создание объекта Swinq в потоке обработки событий и меню.
презентация [491,3 K], добавлен 26.10.2013Аппаратные и программные средства для разработки веб-сайта. Ознакомление с характеристиками мобильных устройств фирмы Nexus. Установка логотипа сайта. Создание главной страницы. Активация слайдера и панели виджетов. Конфигурирование настроек слайдера.
дипломная работа [11,2 M], добавлен 10.10.2016Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.
лабораторная работа [3,1 M], добавлен 03.02.2008