如何在ANDROID中开发中屏幕和大分辨率的应用程序?
我开发了一个应用程序。适用于大屏幕平板电脑和中屏幕移动设备 但在Micromax Canvas系列中,它将Resourceation视为平板电脑,因为这类设备的分辨率很高如何在ANDROID中开发中屏幕和大分辨率的应用程序?,android,size,screen,resolution,Android,Size,Screen,Resolution,我开发了一个应用程序。适用于大屏幕平板电脑和中屏幕移动设备 但在Micromax Canvas系列中,它将Resourceation视为平板电脑,因为这类设备的分辨率很高 我的设备有大约4的屏幕,但是当我在我的设备上运行代码时,它的大小被认为是5.81。可能是因为高分辨率 有人能说出解决办法吗 我检查屏幕大小的代码是 int orientation = getWindowManager().getDefaultDisplay().getOrientation(); scr
我的设备有大约4的屏幕,但是当我在我的设备上运行代码时,它的大小被认为是5.81。可能是因为高分辨率
有人能说出解决办法吗 我检查屏幕大小的代码是 int orientation = getWindowManager().getDefaultDisplay().getOrientation();
screen_size = global.getScreenSize();
Toast.makeText(getApplicationContext(), "Screen Size:" +screen_size, 500).show();
if(screen_size>=5.1)
{
if (orientation==0)
setContentView(R.layout.login_large);
else if (orientation==1)
setContentView(R.layout.login_large_land);
else if (orientation==2)
setContentView(R.layout.login_large);
else if (orientation==3)
setContentView(R.layout.login_large_land);
}
当我运行该应用程序时,它在平板电脑和三星设备上成功运行,但在Micromax Canvas系列上没有运行
我的全局变量编码是
public double getScreenSize()
{
double size = 0;
try
{
DisplayMetrics dm = getApplicationContext().getResources().getDisplayMetrics();
float screenWidth = dm.widthPixels / dm.xdpi;
float screenHeight = dm.heightPixels / dm.ydpi;
size = Math.sqrt(Math.pow(screenWidth, 2) + Math.pow(screenHeight, 2));
}
catch(Throwable t){}
return size;
}
我认为您可以在这里做一些事情,既可以提高代码质量,也可以解决您所看到的问题:
layout/layout land
)sw600dp
而不是“大型”以
编码方式执行此操作是一种不好的做法,因为某些设备无法返回准确的物理屏幕大小,但下面是解决此问题的方法
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
screen_size = Math.sqrt(x+y);
Log.d("debug","Screen inches : " + screen_size);
然后你可以做你想做的事
if(screen_size>=5.1)
{
if (orientation==0)
setContentView(R.layout.login_large);
else if (orientation==1)
setContentView(R.layout.login_large_land);
else if (orientation==2)
setContentView(R.layout.login_large);
else if (orientation==3)
setContentView(R.layout.login_large_land);
}
你们能详细阐述一下“它不在画布上运行”的意思吗?请看编辑后的问题。帆布系列指Micromax帆布。手机是画布,画布2,画布3,画布4,我以前也这么做过。但是它导致了错误,所以我就这样做了,并且成功了。但我的问题是如何在大分辨率设备上运行该应用程序。