私は現在、リング状のイメージビューを取得するためにドローアブルを使用しています。
問題は次のとおりです。これらの2つの画像ビューが1行にあり、すべて重み= 1であるため、すべて同じ幅になります。ただし、シェイプリングドローアブルのxmlタグ属性「innerRadiusRatio」はドローアブルの幅に依存します。そのため、イメージビューの幅が高さよりも大きくなると、リングの形状がトリミングされます。innerRadiusRatioを幅ではなく高さに依存させる方法はありますか?または、scaleTypeを「fitCenter」などに設定しますか?
これが私のレイアウトです:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="64dip"
android:layout_width="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ring_shape_drawable"
android:src="@drawable/test_button_drawable"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/ring_shape_drawable"
android:src="@drawable/test_button_drawable"/>
</LinearLayout>
シェイプドローアブルのxmlは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadiusRatio="2.8"
android:thicknessRatio="30"
android:useLevel="false"
android:shape="ring" >
<solid android:color="@color/custom_red" />
</shape>
そして、これが結果です(私が望まないトリミングされたringShapeDrawableを使用):
これは望ましい結果になります。
ご協力いただきありがとうございます :)