我从我的客户端收到了PSD布局,而且它包含一些固定的背景图像,在这些图像下方应该有一些按钮,TextView等等。
问题是,例如Game Over屏幕有一个背景,那么应该有一个“You win”或“You lose”的图像,在背景之上,从左上角开始的特定偏移。 如果我为480x800手机设计接口,并以像素为单位指定偏移量,一切都可以。但是,如果我将它部署到320x480手机中,它当然不适合,因为现在像素偏移不同,背景也会缩放。
使用倾角装置无济于事,因为较小的手机也有较小的屏幕。
这是我想做的草图。所有它应该在240x320到540x960的手机上看起来相似。是否有可能在单个XML布局文件中以某种方式执行此操作,或者我是否必须为我想到的每个分辨率手动编码偏移量?
主要问题是,在图片上,“你赢了”周围的红框是一个适合橙色背景的地方,因为这就是图形的设计方式。当应用程序在较小分辨率的手机上运行时,我并不完全知道如何将橙色的“你赢”图片对齐。
答案 0 :(得分:1)
答案 1 :(得分:1)
@Axarydax如果您希望您的应用程序支持不同的屏幕尺寸,您将设计它们。 我遇到过同样的问题 将图像放置在drawable-hdpi中用于高密度设备,在drawable-ldpi中用于低密度设备,在drawable-mdpi中用于中密度设备然后
我做了什么,我创建了三个不同的布局文件夹 喜欢320x480 布局文件夹
屏幕尺寸为240x320
布局端口-320×240
屏幕尺寸为480x800
布局端口-480×800
并创建具有相同名称的相应布局 一旦你完成了所有的编译 android会自动选择相应的布局 因为我创建了分辨率的模拟器,然后根据我的要求调整了布局
答案 2 :(得分:1)
我通过获取屏幕尺寸偏移来管理多分辨率。
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
height = displaymetrics.heightPixels;
width = displaymetrics.widthPixels;
getDensityName(displaymetrics.density);
int dens=displaymetrics.densityDpi;
double wi=(double)width;
double hi=(double)height;
double x = Math.pow(wi,2);
double y = Math.pow(hi,2);
double screenInches = Math.sqrt(x+y)/(double)dens;
if(screenInches<3.7)
{
offset = 0.7f;
}
else if(screenInches<4.2)
{
offset = 1.1f;
}
else if(screenInches<5.0)
{
offset = 1.5f;
}
else if(screenInches<6.0)
{
offset = 1.7f;
}
else
{
offset = 2f;
}
我希望这可以帮助别人。谢谢!