对于my app(运行Android 2.1及更高版本), 我想知道如何根据dpi缩放各种屏幕尺寸的按钮(在这种情况下是虚拟仿真器),因为我的缩放背景图像似乎是“未混合”完全正常...我缩放了我的按钮(“GOT IT”如图所示相应地,例如,lpdi和xxhdpi屏幕,我得到以下结果:
对于Nexus 5虚拟仿真器(xxhdpi),假设按150X34像素的按钮似乎导航到ldpi资源控制器:
放大QVGA(ldpi),按钮为57X13像素:
所有这些都说,我是否需要缩小布局而不是考虑到我在可绘制文件夹(xhdpi,hdpi,mdpi和ldpi)中实现缩放按钮图像,在可绘制资源文件中调用它,然后将drawable资源文件设置为ImageButton的背景图像?这是我的按钮btw的XML:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:id="@+id/exitBtn"
android:layout_marginBottom="57dp"
android:src="@drawable/popup_btn"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:scaleType="centerCrop"
android:background="@android:color/transparent" />
P.S。缩放可绘制文件夹xhdpi是xxhdpi屏幕的默认位置吗? xxxhdpi及以上版本怎么样?
答案 0 :(得分:0)
首先,您必须更改按钮才能占据整个屏幕:
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/exitBtn"
android:layout_marginBottom="52dp" <-- You may keep the margin if you like
android:background="@drawable/popup_btn"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
接下来,您将需要为您支持的不同密度包含不同的资源:mdpi,xhpdi,xxhdpi等。请确保每个分辨率都合适并避免使用相同的图像,太大的文件会占用内存和处理能力,文件分辨率太小会看起来像素化。
编辑:有关支持不同设备和屏幕密度的更多信息: http://developer.android.com/guide/practices/screens_support.html
答案 1 :(得分:0)
为了兼容具有不同屏幕尺寸的布局,您应该使用 res / 目录下的尺寸来获得布局兼容性,例如,您可以为不同的屏幕尺寸定义不同的尺寸,另请参阅{ {3}}和Providing Resources
答案 2 :(得分:0)
通过实例化来创建显示指标。现在从显示指标中检索整个根视图的宽度和高度
完成后,在您的活动的Oncreate中实现globallayoutchangelistener,并将缩放代码放在侦听器中。
想法是首先计算设备密度,然后根据globallayoutchangelistener中的密度缩放按钮
让我知道它是否有效。