java - 设置屏幕属性 View

标签 java android button random view

在下面的代码中,按钮会在单击时更改其位置。但有时,按钮会移出屏幕,导致无法再点击。如何解决?

@Override

public void onClick(View v) {

view.getParent();
    Random r = new Random();
    View decorView = getWindow().getDecorView();
    int screenWidth = decorView.getWidth();
    int screenHeight = decorView.getHeight();
      long startTime =  SystemClock.elapsedRealtime();
      i++;


    if (i == 1 ) {

        start_time.setX(r.nextInt(screenWidth - start_time.getWidth()));
        start_time.setY(r.nextInt(screenHeight - start_time.getHeight()));
    }
    if (i == 2 ) {
        start_time.setX(r.nextInt(screenWidth - start_time.getWidth()));
        start_time.setY(r.nextInt(screenHeight - start_time.getHeight()));
    }

    else if (i == 3) {
        long difference = SystemClock.elapsedRealtime()  - startTime;

          Intent intent = new Intent(Game.this, MainScreen.class);
          intent.putExtra("time",difference);

          textview1.setText(getIntent().getStringExtra("time"));
        finish();
    }


}

最佳答案

您遇到的问题似乎是您可能在 RelativeLayout 中使用 wrap_content 作为宽度/高度,但您获取了屏幕的宽度和高度,而不是包含的布局你的按钮。

您应该使用 getParent() 方法来获取您的 RelativeLayout 宽度和高度。

RelativeLayout myRelativeLayout = (RelativeLayout) myButton.getParent();
int screenWidth = myRelativeLayout.getWidth();
int screenHeight = myRelativeLayout.getHeight();

关于java - 设置屏幕属性 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942737/

相关文章:

java - 无法写入 JSON : No serializer found for class java. io.FileDescriptor 并且未发现用于创建 BeanSerializer 的属性

Java PaintComponents 不绘制形状

Java Scanner 不会跟踪文件

javascript - 按住按钮并更改查询选择器

c++ - Win32 c++ 在运行时调整 createwindow 的大小

java - 如何使一个应用程序实例可供多个用户使用?

Android 谷歌加登录

c# - 适用于 Web 和移动设备的 ASP.NET Web API 社交身份验证

android - 如何在移动视觉 api 时捕获图片 - 人脸跟踪

html - 悬停时的图标动画