related SO question複数のフォーマットのカスタム属性の値を読み取る方法は?
複数の種類のカスタム属性を定義できます。
<declare-styleable name="RoundedImageView">
<attr name="cornerRadius" format="dimension|fraction"/>
</declare-styleable>
そして私はそれの外の値を読むために以下の方法
<RoundedImageView app:cornerRadius="30dp"/>
<RoundedImageView app:cornerRadius="20%"/>
どのようにそれを使用したいですか?
APIレベル21は、私は、これは推奨される解決策だと思いAPI TypedArray.getType(index)
int type = a.getType(R.styleable.RoundedImageView_cornerRadius);
if (type == TYPE_DIMENSION) {
mCornerRadius = a.getDimension(R.styleable.RoundedImageView_cornerRadius, 0);
} else if (type == TYPE_FRACTION) {
mCornerRadius = a.getFraction(R.styleable.RoundedImageView_cornerRadius, 1, 1, 0);
}
を提供します。
しかし、APIレベルを低くする方法はありますか? try catch
を使用する必要がありますか?
また、2つの属性を定義することもできます。cornerRadius
とcornerRadiusPercentage
... CSSでborder-radius
が恋しいです。
'TypedArray.getValue(...)' + 'TypedValue.type'? – Selvin
@Selvin私はあなたの解決策を試しています。私はそれがうまくいくと思います。ありがとう。 – Moon
@Selvin回答を投稿することができます。私はそれを受け入れるでしょう。 – Moon