Добавление дополнительных изображений / значков в CardFragment (Android Wear)

Я смотрю на это образ из Google и пытаюсь понять, как реализовать что-то подобное.

Он очень похож на стандартный макет CardFragment который содержит заголовок, описание и значок. Но я вижу дополнительное изображение / анимацию часов слева, что заставляет меня думать, что они используют настраиваемый макет. Можно ли это сделать со стандартным CardFragment ? Или есть еще один класс удобства, который позволяет поддерживать несколько значков?

Введите описание изображения здесь

Я достиг этого, расширив CardFragment и переопределив onCreateContentView :

 @Override public View onCreateContentView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = (ViewGroup) inflater.inflate(R.layout.fragment_my_card, null); ... } 

Это позволяет вам контролировать, что происходит на белой карте.

Образец образца, который вы показываете, является обычным уведомлением. Вы должны ознакомиться с уведомлениями Android Wear:

Пользовательские уведомления

Это упражнение немного длинное, поэтому я постараюсь быть кратким, но кратким.

1) Сначала вам нужно будет определить настраиваемый макет уведомлений, который определяет внешний вид уведомления в файле макета XML. Чтобы дублировать пример Google, определите XML-макет, содержащий ImageView для кругового таймера прогресса и два текстовых поля для описаний тренировок:

 <?xml version="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="horizontal"> <ImageView ... </> <RelativeLayout android:layout_marginStart="20dp" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView ... </> <TextView ... </> </RelativeLayout> 

2) Создайте класс CircularTimer.class, который расширяет API-интерфейс Drawable. Этот класс должен реализовать методы start () и stop () для обработки обратного отсчета таймера. API-интерфейс Drawable выходит за рамки этого упражнения, но вы можете узнать больше, выполнив поиск в Интернете на индикаторах выполнения. Для краткости, вот пример:

 public class CircularTimer() extends Drawable { ... public CircularTimer(int maxValue) { ... } @Override public void onDraw(Canvas canvas) { // Use drawCircle(), drawArc() to draw a circle and pie bar // Use drawText to draw the timeout value in center of circle } ... } 

4) Создайте класс WorkoutCustomView.class и установите его содержимое в свой ранее определенный XML. Получите ссылку на свой ImageView и установите объект drawable для метода setImageDrawable (). Например:

 mImageView = (ImageView) findViewById(R.id.imageview); mCircularTimer = new CircularTimer(60); // 60s countdown mImageView.setImageDrawable(mCircularTimer); 

3) Настройте основное уведомление:

 NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setContentTitle("Workout") .setContentText("Push Ups") .setSmallIcon(R.drawable.ic_bicep); 

4) Создайте намерение и ожидающие намерения, которые будут запущены пользовательским уведомлением:

 Intent i = new Intent(this, WorkoutCustomView.class); PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 

5) Задайте ожидающий объект цели для метода setDisplayIntent () класса WearableExtender:

  NotificationCompat.WearableExtender we = new NotificationCompat.WearableExtender() .setDisplayIntent(pi); // Add wearable specific features builder.extend(wearableExtender); 

6) Отправляйте свое уведомление

 NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(NOTIFICATION_ID, builder.build()); 

Надеюсь это поможет!

Для дальнейшего чтения, выезд http://www.learnandroidwear.com/wear-custom-notification . Автор фактически реализовал точную копию вашего примера.

Андрей

Intereting Posts
Название центра панели инструментов Android и собственный шрифт Как установить фоновое изображение кнопки с эффектом пульсации в android Как получить токен доступа с новым знаком google с игровыми сервисами 8.3? Как получить PlaceID от имени или lat, долго в Android? Вставка или обновление Android SQLite Как получить доступ к существующей базе данных sqlite в Android? Получение поддержки Android NDK r9d для поддержки C ++ 11 Почему короткий примитивный тип значительно медленнее, чем long или int? Добавление MP3 в ContentProvider Оверлей приложения Android по всей стране (HUD) Редактор компоновки больше не работает: рендеринг не работает с известной ошибкой Добавить диалоговое окно прогресса в sherlock панели действий из фрагмента sherlock Проблема с базой данных sqlite, нет такой таблицы: Андроид: сделать полноэкранный просмотр изображений Скрыть только панель действий на вкладках Прокрутка, а не панели действий.