点击按钮==按钮出现在随机位置

时间:2018-06-11 18:45:53

标签: android xamarin

大家好我正在做一个游戏,你必须在一个按钮上连续点击10次,每次点击都会出现在随机位置。因此,我需要找到设备的高度和宽度。我将尝试为Android做这件事,因为我用Google搜索完全不同的代码。所以我会这样做:

 public static int ScreenHeight { get; set; }
 public static int ScreenWidth { get; set; }
 App.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);
 App.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);

所以在这里我需要知道应用程序必须在那里? Android Xamarin中的表单名称或布局名称或项目的应用程序名称。我需要帮助的下一件事是给我生成的随机位置的按钮位置我google了很多,所以这取决于我用来生成位置的方法。 :

Random xLoc = new Random();
Random yLoc = new Random();
int realXLoc;
int realYLoc;
realXLoc = xLoc.Next(1, ScreenWidth);
realYLoc = xLoc.Next(1, ScreenHeight);

基本上我要问的是一段将我的想法转化为现实的代码。真诚的Rectinho。

1 个答案:

答案 0 :(得分:0)

您似乎没有获得正确的ScreenHeight和ScreenWidth。您可以尝试使用DisplayMetrics类。

例如:

public class MainActivity : AppCompatActivity
{
    int ScreenHeight;
    int ScreenWidth;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);

        Button button = FindViewById<Button>(Resource.Id.button1);
        button.Click += Button_Click;

        DisplayMetrics displayMetrics = new DisplayMetrics();
        WindowManager.DefaultDisplay.GetMetrics(displayMetrics);
        ScreenHeight = displayMetrics.HeightPixels;
        ScreenWidth = displayMetrics.WidthPixels;
    }
    private void Button_Click(object sender, System.EventArgs e)
    {
        Random xLoc = new Random();
        Random yLoc = new Random();
        int realXLoc;
        int realYLoc;
        Button button = sender as Button;
        realXLoc = xLoc.Next(1, ScreenWidth- button.Width);
        realYLoc = xLoc.Next(1, ScreenHeight - button.Height);
        button.SetX(realXLoc);
        button.SetY(realYLoc);
    }
}

结果:
enter image description here