Как сделать вид как всегда сверху?

У меня есть TextView и его на изображении. Когда я нажимаю кнопку, TextViewЦвет фона изменится, но изображение не исчезнет. Например;

мой TextView в начале:

Когда я нажимаю кнопку:

4 ответа

Решение

Если вы хотите сделать это, используя только один TextView тогда это может быть невозможно. Итак, я предлагаю вам сделать это с помощью FrameLayout, Вы можете написать свой макет, как показано ниже.

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#FFFFFF" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

</FrameLayout>

Когда вы хотите изменить цвет позади TextView затем измените ImageView фон, как показано ниже...

ImageView mageView view = (ImageView) findViewById(R.id.image);
view.setBackgroundColor(Color.BLUE);

Если это должен быть TextView и ImageView, вы также можете обернуть его в FrameLayout (который должен содержать только один дочерний элемент). FrameLayout поместит все содержащие дочерние элементы в одно и то же "место", поэтому они будут перекрываться.

Или, когда вам нужно больше элементов, вы также можете использовать RelativeLayout и дать вашим элементам те же правила компоновки (например, все по центру).

Вы должны использовать ImageView вместо TextView, то:

public void onClick(View v){
  imageView.setBackgroundColor(Color.GREEN);
}

ImageButton - лучший вариант для вас. Источник изображения будет звёздным, как вы сказали. Затем при нажатии вы меняете фон. если хотите установить текст в этом

android:drawableTop="@drawable/any_drawable"
android:text="@string/any_text"
Другие вопросы по тегам