Как получить расположение кнопки и заставить Textview появляться в центре кнопки с помощью Onclick

android button textview location onclicklistener

53 просмотра

1 ответ

Я новичок и считаю, что это относительно простой ответ

У меня есть кнопка, случайно появляющаяся на экране. Когда я нажимаю кнопку, я хочу получить ее местоположение и сделать текстовое представление видимым центром кнопки.

   btnScale.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View v) {

            v.startAnimation(animScale);
            btnScale.setClickable(false);

            int x = v.getLeft();
            int y = v.getTop();     

              if(txtView.getVisibility()==View.VISIBLE){
                  txtView.setVisibility(View.INVISIBLE);

              }else{
                  txtView.setVisibility(View.VISIBLE);
                  txtView.setX(x);
                  txtView.setY(y);
              }   

        }});

android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android"  >

   <Button
    android:id="@+id/button"
    android:layout_width="50dip"
    android:layout_height="50dip" 
    android:layout_centerVertical= "true"
    android:layout_centerHorizontal= "true"
    android:background="@drawable/black_round_button"   
    />

   <TextView android:id="@+id/count"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:visibility="invisible"
      android:text="Appear"
      />

Это то, что я пробовал до сих пор.

Как видно, я использую методы getLeft (), getTop () для определения местоположения кнопки. Однако я не могу использовать его на методах setX, setY. Это дает бессмысленную ошибку.

Есть ли другой способ сделать это?

С уважением

Автор: Meric Ozcan Источник Размещён: 08.11.2019 11:31

Ответы (1)


1 плюс

Решение

Вы можете просто установить текст для кнопки при нажатии вместо использования TextView.

В вашем onClick()методе напишите:

btnScale.setText("Appear");

Кроме того, поскольку фон вашей кнопки черный, не забудьте добавить эту строку в тег Button (xml):

android:textColor="@android:color/white"

Надеюсь, это поможет!

Автор: Omar Aflak Размещён: 20.08.2016 04:52
Вопросы из категории :
32x32