我是Android编程新手。最近,我开始了一个项目,并希望为Android应用程序制作一个闪屏。我在following this tutorial之后阅读并成功实现了启动画面。但是,我意识到我的应用程序徽标延伸到我的屏幕之外,如下所示:
以下是我的background_splash.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/splash_background" />
<item>
<bitmap
android:gravity="center"
android:src="@drawable/tap" />
</item>
</layer-list>
我试过了
android:width="75sp"
android:height="75sp"
<bitmap>
中的但它不起作用。因此,我想知道是否有一种方法可以调整图像大小(最好不使用Java代码),除了使用ImageView
。任何帮助将不胜感激!
答案 0 :(得分:5)
只需更改
android:gravity="center"
要
android:gravity="fill"
答案 1 :(得分:4)
我为我的应用设计启动画面时遇到了同样的问题(按照上面提到的相同链接和其他几个),以及一些谷歌搜索得到了我的答案。
解决方案很简单,不涉及编码。 即。您不需要在xml中指定高度和宽度。至于为什么会发生这种情况,您的图像分辨率高于,而不是下面指定的。
解决方案:
您需要提供映射到各种屏幕尺寸的各种分辨率的图像。以下是Google提供的各种显示的最小屏幕尺寸列表(全部以像素为单位): -
Android移动设备
LDPI- 426 x 320
MDPI- 470 x 320
HDPI- 640 x 480
XHDPI- 960 x 720
对于 Android平板电脑设备
LDPI- 200 x 320
MDPI- 320 x 480
HDPI- 480 x 800
XHDPI- 720 x 1280
所有您需要做的就是 调整大小 所有尺寸的, 加载 < / strong> Drawable中的图像根据其尺寸(例如: drawable-hdpi 包含 hdpi 图像)并将其传递给background_splash。 xml(你可以保持相同的名称)。重建项目并运行它。应该符合您的规范。
注意:代码根本不需要更改。对于图像大小调整,您可以使用Adobe Photoshop(我发现它更容易使用)。
根据偏好,您还可以使用 9 Patch image ,以便图像的边框可以拉伸以适应屏幕的大小,而不会影响图像的静态区域。
http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch
答案 2 :(得分:2)
位图无法更改其大小。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white"/>
<item
android:width="200dp"
android:height="200dp"
android:drawable="@drawable/ic_launcher"
android:gravity="center" />
</layer-list>
答案 3 :(得分:1)
位图不允许使用gravity =&#34; center&#34;来调整图像尺寸。并为闪屏选择一个具有特定大小的单独图标。
答案 4 :(得分:1)
试试这个不要使用drawable
如果你想改变背景颜色,将它赋予相对布局, 如果您希望将完整图像设置为使用match_parent到图像视图的scree(最适合启动画面)
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:layout_centerInParent="true"
android:src="@drawable/splash" />
</RelativeLayout>
答案 5 :(得分:1)
有更简单的方法可以做到这一点。在您的launch_background.xml
文件中,删除该位图标签,然后像这样添加它
<item
android:width="200dp"
android:height="200dp"
android:drawable="@drawable/yourImagehere"
android:gravity="center" />
答案 6 :(得分:0)
你使用 ImageView 尝试它我觉得它可以帮助你...
ImageView img=(ImageView)findViewById(R.id.ImageView01);
Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.sc01);
int width=200;
int height=200;
Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true);
img.setImageBitmap(resizedbitmap);
或强> 检查
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="100dp"
android:layout_height="100dp">
<item
android:drawable="@drawable/splash_background" />
<item>
<bitmap
android:gravity="center"
android:src="@drawable/tap" />
</item>
</layer-list>
答案 7 :(得分:-4)
如果要调整项目中的位图大小,则不应使用位图 要更改尺寸,请直接使用项目..示例:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/splash_background"/>
<item
android:src="@drawable/tap"
android:gravity="center"
android:width="150dp"
android:height="150dp"/>
</item>
</layer-list>
位图不允许使用gravity =“center”
调整图像尺寸