Android LayerDrawable以相同的大小绘制可绘制对象?
嗨,我正在尝试绘制两个不同大小的图标,其中一个图标只是背景边界类型,另一个图标是符号 当我同时绘制这两个图标时,符号图标的大小会变大,以适应与背景图标相同的大小 这是我的密码Android LayerDrawable以相同的大小绘制可绘制对象?,android,android-drawable,Android,Android Drawable,嗨,我正在尝试绘制两个不同大小的图标,其中一个图标只是背景边界类型,另一个图标是符号 当我同时绘制这两个图标时,符号图标的大小会变大,以适应与背景图标相同的大小 这是我的密码 drawableSelectedIcons[0] = r.getDrawable(R.drawable.background); drawableSelectedIcons[1] = r.getDrawable((R.drawable.symbol); LayerDrawable layerDraw
drawableSelectedIcons[0] = r.getDrawable(R.drawable.background);
drawableSelectedIcons[1] = r.getDrawable((R.drawable.symbol);
LayerDrawable layerDrawableSelected = new LayerDrawable(drawableSelectedIcons);
考虑到您的布局中只有该图像,这应该足以满足您的需求:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:scaleType="center"
android:src="@drawable/symbol" />
</LinearLayout>
R.drawable.symbol
是位图吗?然后将其加载为BitmapDrawable。它有重力。根据重力,位图位于可绘制边界内。试着把重力设为重心
您可以这样做:
BitmapDrawable bd = (BitmapDrawable) r.getDrawable((R.drawable.symbol); // be careful with this cast
db.setGravity(Gravity.CENTER)
drawableSelectedIcons[1] = bd;
您是否尝试更改可绘制比例值?您是如何通过编程实现的?背景图像有点像200x200,而符号图像只有120x120,所以为什么我必须手动缩放/调整其大小?您只有两层?为什么不在ImageView中将较大的图像设置为背景,将较小的图像设置为src?是的,只有两层需要动态渲染
BitmapDrawable bd = (BitmapDrawable) r.getDrawable((R.drawable.symbol); // be careful with this cast
db.setGravity(Gravity.CENTER)
drawableSelectedIcons[1] = bd;