2013-02-26 1 views
1

Я хочу, чтобы на моем приложении для Android-смартфонов была кнопка «comments», в которой отображается количество комментариев, опубликованных в настоящее время внутри значка ... так что в принципе я хочу, чтобы пузырь комментариев с номером внутри него.Динамическое определение того, как рисуется значок

Я мог бы иметь несколько чертежей, каждый из которых является пузырем с другим номером внутри него, и использовать оператор switch, чтобы выбрать, какой из них нужно загружать каждый раз, основываясь на поле отображаемого элемента int number_of_comments. Этот подход кажется немного расточительным, хотя, и в любом случае у меня есть чувство, что есть более элегантный способ сделать это.

Любые идеи?

ответ

3

проверить этот третий участник создал виджет

Android ViewBadger

Вы можете использовать его, чтобы создать небольшое количество пузырьков, которые вы ищете Я думаю, , Это дает вам преимущество в том, что вы не изменяете свои макеты настолько, чтобы достичь того, что вы пытаетесь получить.

Вот пример кода, чтобы применить «значок»

View target = findViewById(R.id.target_view); 
BadgeView badge = new BadgeView(this, target); 
badge.setText("1"); 
badge.show(); 
+0

+1 для ссылки gitHub. Кажется довольно полезным. –

+0

ViewBadger прекрасен, но я столкнулся с некоторыми проблемами с вкладками в Android 4+ и библиотеке поддержки. Просто голова. Иконки должны быть в порядке! – 323go

4

Вы можете сделать лучше. Вы можете иметь текстовое представление сверху изображения и постоянно обновлять его значение каждый раз, когда добавляется новый комментарий. Вы можете определить перекрытие в xml, как показано ниже, и настроить логику кода соответственно, чтобы увеличить счетчик комментариев. На данный момент я только что установил фиктивный текст Hello, чтобы показать поверх ImageView. Вы можете добавить свой комментарий, используя метод setText TextView.

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/relativelayout" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<ImageView 
    android:id="@+id/myImageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/myImageSouce" /> 

<TextView 
    android:id="@+id/myImageViewText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/myImageView" 
    android:layout_alignTop="@+id/myImageView" 
    android:layout_alignRight="@+id/myImageView" 
    android:layout_alignBottom="@+id/myImageView" 
    android:layout_margin="1dp" 
    android:gravity="center" 
    android:text="Hello" 
    android:textColor="#000000" /> 

</RelativeLayout> 

Надеется, что это помогает ...

+0

AHHHHHHHHHHHH как я шел домой только сейчас у меня была именно эта идея! Я был в порядке, надеясь, что буду первым, кто разместит его здесь, но приятно видеть, что кто-то другой думал так же. – drewmoore

+0

Это было первое, что я вспомнил после прочтения вашего вопроса. Однако утилита ViewBadger также выглядит многообещающей. –