Настраиваемые границы для Android

#android #drawable

#Android #доступные для рисования

Вопрос:

Я пишу пользовательский чертеж, текст поверх растрового изображения:

 @Override
public void draw(Canvas canvas) {
    canvas.drawBitmap(badge, matrix, null); 
    canvas.drawText(count, size / 2, size / 2   (text_size) / 2 , p);
}
  

Когда я использую свой drawable в ImageView, все в порядке.
хорошо

Но если я использую это с textview (составным отображаемым), его выравнивание будет неправильным. неправильно

Я пробовал как setCompoundDrawablesWithIntrinsicBounds, так и setCompoundDrawables

Те же результаты, что я пропустил?

Спасибо.

Ответ №1:

Мне удается получить правильное выравнивание (мой объект рисования представляет собой круг / квадрат, поэтому ширина = = высота):

В моем настраиваемом ctor:

 Custom_Drawable(int size) {
    this.size = size;
}
  

Метод onDraw:

 @Override
public void draw(Canvas canvas) {
    // draw here
    setBounds(0, 0, this.size, this.size);
}
  

При настройке :

  b.setCompoundDrawables(new Custom_Drawable(25), null, null, null);