Как динамически изменять размер пользовательского вида при рисовании на холсте?

Я хочу нарисовать представление типа выноски (в данном случае LinearLayout), где фон выноски - это CardView, а заголовок - это TextView. Как изменить размер макета в зависимости от размера текста. Я пробовал обернуть контент, но он не работает.

layout_callout_view.xml

<LinearLayout
  xmlns:android = "http://schemas.android.com/apk/res/android"
  xmlns:app = "http://schemas.android.com/apk/res-auto"
  android:orientation = "vertical"
  android:layout_height = "wrap_content"
  android:layout_width = "wrap_content">
<android.support.v7.widget.CardView

    android:layout_height = "wrap_content"
    android:layout_width = "wrap_content"
    app:cardCornerRadius = "@dimen/dimen_2dp"
    app:cardBackgroundColor = "@color/white">
  <TextView
      android:id = "@+id/markerCalloutTitle"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
      android:textColor = "#010202"
      android:textSize = "@dimen/dimen_16sp"
      android:layout_gravity = "center"
      android:gravity = "center">
  </TextView>
</android.support.v7.widget.CardView>
<ImageView
    android:layout_width = "@dimen/dimen_12dp"
    android:layout_height = "@dimen/dimen_6dp"
    android:layout_gravity = "center"
    android:src = "@drawable/tips_location_marker_callout_pointer"/>

Предполагая, что calloutView как объект

onDraw{
---
---
calloutView.draw(canvas,x,y,paint)
}

Вы ищете индивидуальный вид, например, truecaller? Но ваш пользовательский вид должен увеличивать его высоту в зависимости от текста. Я прав?

Vishwa 23.04.2018 14:03

Я не про truecaller, но у меня есть изображение и пара точек на этом изображении. Если пользователь нажимает на любую конкретную точку, появляется выноска в форме прямоугольника и отображается текст.

Vivek Patel 23.04.2018 14:15
0
2
132
0

Другие вопросы по теме