我一定是做错了什么,
我有一个布局xml和线性布局,这个线性布局有2个按钮(相当大),重力设置为垂直和水平布局的中心位置..在我为Nexus设计的屏幕上看起来很棒一个3.7“
所以在eclipse中我将nexus one(在下拉菜单中)更改为10.1屏幕,一切都显示正常但我的按钮太小了,它们似乎没有保持外观和感觉尺寸..
我做错了什么..
我想要做的是让我的屏幕在任何设备上都看起来几乎一样 - 我虽然SP是要走的路?
提前致谢
答案 0 :(得分:0)
如果您忘记在<uses-sdk>
中定义AndroidManifest.xml
,您可能会看到与布局等相关的奇怪问题。
因此,请先检查您的AndroidManifest.xml
,看看是否定义了以下示例:
<uses-sdk android:minSdkVersion="5"
android:targetSdkVersion="9" />
如果问题仍然存在,请发布您的资源xml,以便检查代码。
答案 1 :(得分:0)
所以我在Galaxy标签和标签10.1“之间切换时也一样.Android将每个屏幕分类为垃圾箱,并相应地使用SP。尝试在两个屏幕上运行以下代码:
Display d = getWindowManager().getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
d.getMetrics(dm);
Log.d("DISPLAYINFO", "Classified density: " + dm.densityDpi + ", scaled density: " + dm.scaledDensity + ", actual densities: x: " + dm.xdpi + ", y: " + dm.ydpi);
您可能会看到较小的平板电脑被分类到更高密度的垃圾箱中,因此所有内容都会按比例放大以尝试看起来相同。这有点烦人。
答案 2 :(得分:0)
我怀疑按钮缩放到正确的像素数,但是当你切换到平板电脑视图时,设计师正在缩小图像以适应10.1英寸的屏幕。如果你点击左上角的小图标设计师,在圆圈内的数字1,您将看到像素映射时的外观1:1
刻度独立像素(或密度独立像素)有助于抵消不同屏幕(像素)密度的影响。所以,你所做的比较并不正确。要在使用DIP(或SIP)时真正看到效果,您应该在两个屏幕上比较两个屏幕上布局的外观和感觉,但物理尺寸大致相同但屏幕密度不同。 (尝试两个按钮,一个宽度指定为x px宽度,另一个宽度x dp。
此外,如果您真的希望根据屏幕的物理尺寸确定按钮大小,这是一种方法。不是在SIP中指定大小,而是为该值指定“dimen”资源。然后,您可以为大屏幕和小屏幕指定不同的维度值。
尺寸的使用示例:
将宽度指定为:
android:layout_width="@dimen/view_width"
然后创建文件res / values / dimens.xml
<resources>
<dimen name="view_width">10dp</dimen>
</resources>
创建另一个文件res / values-large / dimens.xml
<resources>
<dimen name="view_width">20dp</dimen>
</resources>