我正在开发具有很多受支持屏幕尺寸的 android 程序,并且每个屏幕都有不同的布局,但有些布局有额外的按钮和视图,所以我想根据当前使用的设备更改代码,例如当我使用平板电脑时想使用不同的 main.java 代码我该怎么做?
问问题
118 次
5 回答
1
我认为您必须在活动中检查不同的屏幕尺寸,然后为此使用适当的 xml。以下代码可能有效
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
final int height=dm.heightPixels;
final int width=dm.widthPixels;
if(width == 720 || width==1280 && height == 1280 || height==720) //galaxy s3
{
//code to select xml file
}
于 2013-01-16T11:56:26.350 回答
1
您可以为此在 res 文件夹中添加一个值:
- values-large
* booleans.xml
- values
* booleans.xml
每个 booleans.xml 应该有不同的值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="isTablet">true</bool>
</resources>
您可以根据需要按大小分开,而不是布尔值“isTablet”。然后,您可以获取此值并在您的代码中使用它:
public static boolean isTablet(Context context) {
return context.getResources().getBoolean(R.bool.isTablet);
}
于 2013-01-16T11:56:33.760 回答
0
要么你在android中使用碎片来满足你的条件......或者你可以在你的代码中包含检测屏幕尺寸的行,如果找到特定的屏幕尺寸,你可以连接额外的按钮(或其他任何东西)
于 2013-01-16T11:54:46.087 回答
0
要检测屏幕尺寸,请使用DisplayMetrics
:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Nexy 您可以在代码中使用metrics.widthPixels
和/或metrics.heightPixels
(或任何其他对您有用的字段)来对不同的屏幕尺寸做出反应:
if(metrics.widthPixels >= 500) {
// Support code for additional buttons at a width of 500 and larger
}
于 2013-01-16T11:57:32.120 回答
0
要获得屏幕尺寸,请使用:
public static double getScreenSize(WindowManager windowManager) {
DisplayMetrics metrics = new DisplayMetrics();
windowManager.getDefaultDisplay().getMetrics( metrics );
float widthInInches = metrics.widthPixels / metrics.densityDpi;
float heightInInches = metrics.heightPixels / metrics.densityDpi;
return Math.sqrt(Math.pow(widthInInches,2) + Math.pow(heightInInches,2));
}
确定是平板电脑:
public final static double TABLET_SIZE = 5.0; //inch
public static boolean IsTablet(WindowManager windowManager) {
double inch = getScreenSize(windowManager);
return inch >= TABLET_SIZE;
}
要确定是否纵向:
public static boolean isPortraitOrientation(Context context) {
context.getResources().getConfiguration();
return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
}
于 2013-01-16T12:02:31.843 回答