2021/07/17

Android の Stroke を特定の辺だけにする

[【Android】特定の辺だけにstrokeをつけたい](https://qiita.com/izumin5210/items/3123939043d2b78b4914)
にあるように、特定の辺の stroke を実現するにはコードでの実装が必要という認識だったのですが、最近になって
[InsetDrawable](https://developer.android.com/reference/kotlin/android/graphics/drawable/InsetDrawable) が XML で使用できることを知ってというより、InsetDrawable の存在を知った、これを使えば XML だけで stroke を消せるのではないかと思い、やってみました。



```xml
<?xml version="1.0" encoding="utf-8"?>

    
        <stroke
                android:width="5dp"
                android:color="#FF0000" />
        <solid android:color="#DDDDDD" />
        <corners
                android:topLeftRadius="15dp"
                android:topRightRadius="15dp" />
    

```
Bottom だけ消してみたら以下のような感じになりました。
注意点としては、inset に入れる値が `stroke` の `width` と全く同じだと、場合によっては表示されてしまう場合があること丸め込み誤差のせいだと思われる。少し大きめの値を指定しましょう。

その気になって探してみると、既に情報は出ていました。 [Open-sided Android stroke? - Stack Overflow](https://stackoverflow.com/questions/2422120/open-sided-android-stroke/32145791#32145791)

0 件のコメント: