Android强制Drawable绘制具有相同的高度和宽度

时间:2018-06-12 20:30:38

标签: android android-drawable

我使用this日历库,我需要提供自定义选择器drawable。不幸的是,我应该让每个日期单元格的高度小于宽度,这就是我在xml中将app:mcv_tileHeight设置为40dp的原因。

在我提供了我的选择器drawable之后,它会在整个单元格的边界上被拉伸。 但是我希望它像方形那样缩放,而不是像矩形一样,如果视图的宽度(在我的情况下是日期)大于高度,我希望在左右两侧有空的空间。

以下是我目前拥有的内容以及我想要实现的内容的实际屏幕截图。

example of what I currently have and want to achieve

我已经尝试通过在<size>的{​​{1}}属性中将宽度和高度设置为相同的值来强制xml中的方形比例,但它并没有帮助我。

此外,我尝试了this question的第二个答案,但它会导致崩溃

我尝试像这样扩展Drawable类,但我正在使用这种方法获得NPE。

layer-list

1 个答案:

答案 0 :(得分:1)

如果drawable是BitmapDrawable,您应该能够设置其重力以强制图像居中。

BitmapDrawable bitmap = (BitmapDrawable) getResources().getDrawable(R.color.chat_cardview_color);
bitmap.setGravity(Gravity.center)

这里有一个类似的问题。