Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
320dp宽图像占据Android emulator的整个屏幕_Android_Android Layout_Android Emulator_Android Widget_Imageview - Fatal编程技术网

320dp宽图像占据Android emulator的整个屏幕

320dp宽图像占据Android emulator的整个屏幕,android,android-layout,android-emulator,android-widget,imageview,Android,Android Layout,Android Emulator,Android Widget,Imageview,我有一个横幅,它的宽度是320dp,但它占据了480x800android仿真器的整个宽度 下面是横幅的XML: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/add_banner" android:layout_width="320dip" android:lay

我有一个横幅,它的宽度是
320dp
,但它占据了
480x800
android仿真器的整个宽度

下面是横幅的XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/add_banner"
android:layout_width="320dip"
android:layout_height="50dip"
>
    <ImageView android:id="@+id/add_image"
    android:layout_width="320dip"
    android:layout_height="50dip"
    android:src="@drawable/your_ad_here"
    />

    <Button android:id="@+id/btn_addclose"
    android:layout_width="25dip"
    android:layout_height="25dip"
    android:gravity="center"
    android:layout_alignTop="@id/add_image"
    android:layout_alignRight="@id/add_image"
    android:text="x"
    />
</RelativeLayout>

我已将其作为以下内容包含在我的main.xml文件中:

<include android:id="@+id/add_banner" 
layout="@layout/tlp_add_banner"  
android:layout_width="320dp" 
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>


为了确保我的模拟器是
480x800
,我甚至在运行时记录了这些指标。它是
480x800
。那么为什么横幅占据整个宽度呢?

倾角不是物理像素,而是一个取决于显示密度的合成数字。更多信息请点击此处:


dip
表示与密度无关的像素。您的480x800仿真器很可能是HDPI(高密度,或每英寸高点数),这意味着320dp将转换为320*1.5实际像素(即480)。只有在比例因子为1的MDPI(中等密度)屏幕上,才能获得320像素

您可以获得当前屏幕的比例因子,如下所示:

float scale = getResuorces().getDisplayMetrics().density;
如果您确实希望它的宽度为320像素,而不考虑屏幕密度(根本不建议这样做),您可以指定:

android:layout_width="320px"

我尝试提供备用资源,我在
可绘制hdpi
文件夹中放置了一个240dpi(高密度)320x50图像。Android并不关心实际图像中的DPI设置(这只是元数据,在很多情况下可能是错误的)。只需将一张480x75的图像放入可绘制的hdpi中(我只是将宽度和高度乘以1.5)。