【问题标题】:Android. dp's don't do their job安卓。 dp不做他们的工作
【发布时间】:2012-04-09 15:20:58
【问题描述】:
  1. 新建 -> 用于测试问题的 Android 项目
  2. Test.java的代码:

    打包test.density.yeah;

    import android.app.Activity;
    import android.os.Bundle;
    
    public class TestActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
    }
    
  3. ma​​in.xml 的代码:

    <ImageButton
    android:background="@null"
    android:src="@drawable/icon"
    android:layout_width="200dp"
    android:layout_height="200dp">
    </ImageButton>
    
  4. 使用设置启动模拟器:

分辨率 - 480x800

Avstracted LCD 密度 - 190

结果

http://cs5961.userapi.com/u68152416/-3/y_ef134df2.jpg

之后我就用这样的设置启动了模拟器:

分辨率 - 480x800

Avstracted LCD 密度 - 240

结果

http://cs5961.userapi.com/u68152416/-3/y_8b99507b.jpg

第一个测试的模拟器设置与我的 HTC HD2 特性有关,第二个测试与 HTC Sensation XL 相同。在它们上运行此测试应用程序时 这是同样的问题。 HD2 (480x800, 190dpi) - 小图Sensation (480x800, 240dpi) - 大图

那么为什么“密度独立像素”不起作用?

【问题讨论】:

    标签: android dpi


    【解决方案1】:

    它工作正常,但你需要了解一个转折点。

    您正在视图上使用 src 属性。如果这样做,视图将根据位图大小调整大小,并且您通常会针对各种密度、mdpi、hdpi、xhdpi 等设置不同的版本。它将忽略 layout_height 和 layout_width。

    如果你想让你的 View 忽略位图大小并使用 layout_width 和 layout_height 值来强制大小,你需要使用 background 属性,而不是 src。

    <ImageButton
        android:background="@drawable/icon"
        android:layout_width="200dp"
        android:layout_height="200dp">
    </ImageButton>
    

    【讨论】:

    • 哦,不。我弄错了。我以 190 密度开始了两个测试。而且真的不行。如果使用 480x800 和 190dpi - 普通图像,如果使用 480x800 和 240dpi - 大。一切都和以前一样。没有变化...您还有其他建议吗?
    • 它确实有效,我几乎每天都使用这些功能。我建议您在问题中添加“更新”部分,并提供更多详细信息以供人们帮助。
    • 这很酷……但如果我真的也需要背景,并且希望我的图像可以缩放怎么办?
    【解决方案2】:

    可能是图像缩放使您的结果出错,您可以在此处阅读有关图像缩放的更多信息:

    http://thebigbyte.blogspot.com/2009/12/android-how-to-scale-image-in-imageview.html

    您可以通过将 ImageButton xml 更改为来测试结果

    <ImageButton
    android:background="#ffffff"
    android:layout_width="200dp"
    android:layout_height="200dp">
    </ImageButton>
    

    【讨论】:

      猜你喜欢
      • 2013-05-11
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多