您好我正在尝试为我的启动画面创建一个背景drawable
,我将在主题中进行设置。但是用于保持在中心的位图drawable正在变得紧张,我无法弄清楚如何保持正常。以下是我的可绘制代码:
的 splash_screen_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="360"
android:centerColor="@color/colorAccentXDark"
android:endColor="@color/Black"
android:gradientRadius="500dp"
android:startColor="@color/colorAccentXDark"
android:type="radial"
android:useLevel="false" />
</shape>
</item>
<item
android:bottom="50dp"
android:top="50dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="500dp"
android:innerRadiusRatio="1"
android:shape="oval">
<gradient
android:angle="360"
android:centerColor="@color/colorAccentXDark"
android:endColor="@color/colorAccentXDark"
android:gradientRadius="400dp"
android:startColor="@color/colorAccent"
android:type="radial"
android:useLevel="false" />
</shape>
</item>
<item android:gravity="center">
<bitmap android:src="@drawable/ty_logo" />
</item>
</layer-list>
以下是我将此drawable设置为活动背景的代码:
<style name="TYTheme" parent="SearchActivityTheme.NoActionBar">
<item name="colorPrimaryDark">@color/colorAccentXDark</item>
<item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
<item name="android:windowBackground">@drawable/splash_screen_bg</item>
</style>
所以这里位图drawable ty_logo
是png
在我的手机中被拉伸了。由于scaleType
没有bitmapDrawable
选项,因此我不知道如何处理它。
答案 0 :(得分:6)
将gravity
添加到设置为center
的位图。
<item android:gravity="center">
<bitmap android:src="@drawable/ty_logo"
android:gravity="center" />
</item>
答案 1 :(得分:3)
我希望 ty_logo 具有合适的像素,并且您为各种设备屏幕(Post.findOne({_id: {$gt: curId}}).sort({_id: 1}).exec(cb)
)提供了不同的像素图像。
如果没有,请对您遇到的类似问题进行回答:Resize images in bitmap in xml
否则,如果您的目标版本用于 API 23 ,则可以轻松解决此问题,因为ldpi, mdpi, hdpi, xhdpi, etc
宽度 ,高度,为他们提供的重力属性。
如果没有,以下代码应该可以使用位图的 gravity 属性。同样,这是假设您的徽标没有比设备分辨率更多的像素。
<item>
答案 2 :(得分:2)
您可以在ScaleDrawable <scale>
中包含位图,并在ScaleDrawable
内使用LayerListDrawable
。
<item android:gravity="center">
<scale android:drawable="@drawable/ty_logo"
android:scaleHeight="80%"
android:scaleWidth="80%" >
</scale>
</item>