如何使用xamarin找出设备的高度和宽度

时间:2016-03-26 09:41:54

标签: c# visual-studio-2012 xamarin responsive-design

我正在使用myApp.controller('LoginCtrl', ['$scope', '$http','$location', function($scope, $http, $location) { $scope.login = function() { var data = JSON.stringify({user: $scope.user.id, password: $scope.user.password, type: "m.login.password"}); $http.post("http://localhost:8008/_matrix/client/api/v1/login", data).then(function mySuccess(details){ $http.post('/login',details.data).success(function(response){ console.log(response); $location.path('home'); // Redirect after success login }) .catch(function(data){ console.error("Error in login",data); }); }, function myError(err) { console.log(err); alert("Invalid username/password") }); }; }]); 并且我不知道如何找出设备的高度和宽度。我也在线搜索,但它与Xamarin没有任何关系。所有这些都与其他事物有关。我想构建一个具有响应式布局的应用程序,通过使用高度和宽度,我可以找出设备的位置,并根据设备的条件实现代码。

任何人都可以建议我" .cs"用于查找屏幕高度和宽度的代码?

3 个答案:

答案 0 :(得分:2)

Android

   var metrics = Resources.DisplayMetrics;
   var widthInDp = ConvertPixelsToDp(metrics.WidthPixels);
   var heightInDp = ConvertPixelsToDp(metrics.HeightPixels);

对于iOS:

UIScreen.MainScreen.Bounds

答案 1 :(得分:2)

常用代码(在App.xaml.cs中)

public static int ScreenHeight {get; set;}
public static int ScreenWidth {get; set;}

Android部分(在MainActivity.cs中,在OnCreate方法中)

App.ScreenHeight = (int) (Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);
App.ScreenWidth = (int) (Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);

iOS部分(在AppDelegate.cs中,在FinishedLaunching方法中)

App.ScreenHeight = (int)UIScreen.MainScreen.Bounds.Height;
App.ScreenWidth = (int)UIScreen.MainScreen.Bounds.Width;

因此App.ScreenHeight和App.ScreenWidth将在App启动时初始化,然后您就可以在公共代码中的任何位置使用它们。

答案 2 :(得分:0)

为每种分辨率设置布局的正确方法是为一系列屏幕声明不同的布局文件,如下所述: https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_4_-_creating_resources_for_varying_screens/

不要制作一个处理所有情况的布局,你的代码会很乱,你必须实现已存在的功能并在上面的文档中工作,

因为我发现你没有声誉,我会建议你:

始终首先搜索构建内容的正确方法,然后按照您选择的方式搜索如何构建