Программирование виджетов рабочего экрана

Создание виджета, отображающиего текущую дату, день недели и месяц. Использование конфигурационных окон для настройки виджетов. Открытие окна конфигурации для настройки цвета фона и шрифта. Взаимодействие виджета с другими элементами платформы 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.2016

  • Google 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.