如何以编程方式解析cardElevation xml属性?我尝试过以下无效:
int elevation = getDimension(context, attrs, new int[]{android.support.v7.cardview.R.styleable.CardView_cardElevation});
int elevation = getDimension(context, attrs, new int[]{android.support.v7.cardview.R.attr.cardElevation});
private int getDimension(Context context, AttributeSet attrs, int[] systemAttrs) {
TypedArray a = context.obtainStyledAttributes(attrs, systemAttrs);
int dimension = a.getDimension(0, 0);
a.recycle();
return dimension; // all return 0
}
xml:
<android.support.v7.widget.CardView
...
app:cardElevation="2dp">
答案 0 :(得分:0)
我自己需要这个。
String elevation = attrs.getAttributeValue("http://schemas.android.com/apk/res-auto", "cardElevation");
请注意,海拔以String
的形式返回,例如“ 4.0dip”。
还有另一种方法
typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.CardView);
float elevation = typedArray.getDimension(R.styleable.CardView_cardElevation, 0);
但是,请注意,getDimension()方法会将dp,sp值转换为像素值。