android - 如何使用 Onclick 获取按钮的位置并使 Textview 出现在按钮的中心

标签 android button textview location onclicklistener

我是初学者,我认为这是比较简单的答案

我有一个按钮随机出现在屏幕上。当我单击按钮时,我想获取它的位置并使 textView 在按钮中心可见。

   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 方法上使用它。它给出了无意义的错误。

还有其他方法吗?

最好的问候

最佳答案

您可以简单地在单击按钮时为按钮设置文本,而不是使用 TextView。

在您的onClick() 方法中写入:

btnScale.setText("Appear");

此外,因为您的按钮背景是黑色的,请不要忘记将此行添加到您的按钮标记 (xml) 中:

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

希望对您有所帮助!

关于android - 如何使用 Onclick 获取按钮的位置并使 Textview 出现在按钮的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39055994/

相关文章:

android - 无法以编程方式配置 wifi 开放网络 android?

javascript - 将 TabIndex 添加到由 JavaScript 构建的按钮

ios - 从 tableViewCell 类获取 indexPath

android - nexus 6 和 moto g 的可绘制文件夹

android-layout - 显示股票行情文字而不通知

java - Android - 应用服务器的澄清

Android - 同时显示按钮和文本

android - 如何单击或点击不同单词上的 TextView 文本?

java - 当我单击该 Activity 时,其中有 3 个 TextView 。我想在 2 秒的间隙后一个接一个地加载 TextView ?

java - Android:无法在 Textview 中将来自 SQLite 的字符串设置为 HTML