我希望有一个固定大小的盒子,大小为120x180 dp,里面包含一张比例正确的图片并在周围画上边框。
XML:
<android.support.constraint.ConstraintLayout
android:layout_width="120dp"
android:layout_height="180dp"
app:layout_gravity="center">
<ImageView
android:id="@+id/picture"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@drawable/game_border"
app:srcCompat="@drawable/pic_lion"
android:scaleType="centerInside" />
游戏边框布局:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#55111111" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
<corners android:radius="6dp" />
</shape>
</item>
</layer-list>
这个scaleType
设置很好用,因为它填满了完整的瓷砖内部,而且背景没有被覆盖。但是为了展示不正确的宽高比,我增加了顶部边距。请看下面的图片。我尝试了其他值,但它们要么涂在边框上,要么不能填满完整的内部部分。
如何让具有正确宽高比的带有图片局部边框的瓷砖?图片可以被裁剪。我认为这种技术称为居中裁剪。我在Picasso库中找到了它。
FitXY会扭曲图片:
当我保持宽高比裁剪图片时,手动绘制的图片。抱歉,它看起来很丑,但悬赏很快就结束了。
Bjorn的答案:
Rahul的答案没有底部边框
android:adjustViewBounds
属性的真值吗? - Shayan Pourvatan