gpt4 book ai didi

用于 Droid 手机和 Xoom 的 Android mdpi 可绘制对象?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:27 24 4
gpt4 key购买 nike

我有一个为 Droid(手机)开发的应用程序。在应用程序中,我使用:

位图 b = BitmapFactory.decodeResource(getResources(), R.drawable.bg);

在应用程序中设置背景位图。位图大小为 480x800这是 Droid 的 WVGA 屏幕尺寸(没有状态栏或标题栏)。

两个问题:当我旋转手机时,Droid 进入横向模式并且背景不再正确显示。当我不使用布局时,如何告诉应用它需要使用横向模式?

其次,当我在 Xoom 上运行这个应用程序时,它选择了 mdpi 可绘制对象,它与 Xoom 屏幕的大小相去甚远。如何定义第二个大小为 1280x800 的 mdpi 可绘制对象?我想如果我使用布局,我会创建一个 layout-xlarge 目录并在该布局的 ImageView 中放置一个 1280x800 背景,对吗?

谢谢!

更新*:感谢您的精彩回答!我给大家投了赞成票。我更新了代码,为 Xoom 使用 drawable-xlarge-port/drawable-xlarge-land,为 Droid 使用 drawable-port-mdpi/drawable-land-mdpi。

我没有使用布局,因为我需要直接在 Activity Canvas 上绘制,并且不确定如何从我扩展 View 的类中使用 setContentView() 并挂接到 onDraw() 以执行动画(将需要单独发帖)。

如果我能自己弄清楚如何旋转图像,我确实可以取消 drawable-*-land 和 *-port 目录。

最佳答案

您可以定位可绘制对象,而不仅仅是布局。在第一种情况下,您需要 drawable-hdpi-large-long-land(假设您让系统处理旋转事件并重新创建您的 Activity ),并且 drawable-mdpi-xlarge第二个。

当然,尝试为每一种可以想到的手机分辨率提供单独的图像是徒劳的;部分是因为你需要很多,部分是因为一些目标是不可区分的(例如,854x480 和 800x480 手机都是 hdpi-large-long,尽管有 54px 的差异)。尝试使用可缩放图像、可拉伸(stretch) 9patch 或可以固定在右上角的图像(您可以使用 XML 定义的位图可绘制对象来定义拉伸(stretch)行为)。

关于用于 Droid 手机和 Xoom 的 Android mdpi 可绘制对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com