您好我正在尝试绘制两个不同大小的图标,其中一个图标只是背景边框类型而另一个图标是符号。
当我同时绘制两者时,符号图标会调整得更大,以适应与背景图标相同的大小。
这是我的代码
drawableSelectedIcons[0] = r.getDrawable(R.drawable.background);
drawableSelectedIcons[1] = r.getDrawable((R.drawable.symbol);
LayerDrawable layerDrawableSelected = new LayerDrawable(drawableSelectedIcons);
答案 0 :(得分:4)
R.drawable.symbol
是一个位图?比它作为BitmapDrawable加载。它有引力。根据重力,位图位于drawable的边界内。尝试将重力设置为Gravity.CENTER。
你可以这样做:
BitmapDrawable bd = (BitmapDrawable) r.getDrawable((R.drawable.symbol); // be careful with this cast
db.setGravity(Gravity.CENTER)
drawableSelectedIcons[1] = bd;
答案 1 :(得分:1)
考虑到你的布局中只有这个Image,这应该足以满足你的需要:
<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>
编辑:要将其添加到您的布局中,请使用:
ImageView imageView = new ImageView(this);
imageView.setBackgroundResource(R.drawable.background);
imageView.setImageResource(R.drawable.symbol);
imageView.setScaleType(ScaleType.CENTER);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
addContentView(imageView, params);