TextView целых чисел в виде рисования PNG - PullRequest
0 голосов
/ 26 марта 2020

Я хотел бы сделать TextView счетчик с моими собственными графическими c числами. Как я могу это сделать? Пример: целое число будет 14356, поэтому я хотел бы показать это число в TextView как Drawable:

number1.png + number4.png + number3.png + number5.png + number6.png

Может кто-нибудь помочь мне с некоторыми подсказками / советами, как его кодировать ? Мне не нужен код, просто несколько советов или подсказок. Я хотел бы написать код сам, просто не знаю, как начать эту проблему. Большое спасибо.

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Создайте файл макета с LinearLayout и несколькими ImageViews в нем:

<LinearLayout orientation="horizontal" ...>
    <ImageView id="@+id/digit_1000" .../>
    <ImageView id="@+id/digit_100" .../>
    <ImageView id="@+id/digit_10" .../>
    <ImageView id="@+id/digit_1" .../>
</LinearLayout>

Используйте столько ImageView, сколько необходимо. Затем, когда вы обновите номер, вы можете сделать что-то вроде этого:

private int[] digitDrawables = {R.drawable.digit_0, R.drawable.digit_1, ...}
private ImageView[] digitViews;

private void initialize() {
    // Get image views from layout by ID.
    int[] ids = new int[]{R.id.digit_1, R.id.digit_10, R.id.digit_100, R.id.digit_1000};
    digitViews = new ImageView[4];
    for (int i = 0; i < 4; i++) {
        digitViews[i] = findViewById(ids[i]);
    }
}

private void updateNumber(int number) {
    String str = String.valueOf(number);
    // Go over each digit in string, updating the image views with:
    // -> digitViews[i].setImageResource(digitDrawables[digit]);
    // Hide the image views that you don't need with: 
    // -> digitViews[i].setVisibility(View.GONE);
}

Вы можете начать оттуда.

1 голос
/ 26 марта 2020

ТАК Я бы предложил сделать это с помощью Constraint Layout Горизонтальная цепь (в упакованной конфигурации) представлений изображений.

В коде вы можете просто обновить счетчик в пределах * oop с помощью 1-se c задержка, если его обратный отсчет таймер остальное делать так, как вы делаете отступ (игровые очки), и если условия проверяют, меняет ли новое число место 10, место 100 ... место 100000 и соответственно обновляют.

...