在自定义视图构造函数中获取 android:ellipsize 属性的值
Get the value of android:ellipsize attribute, in a custom view constructor
如何在自定义 View
(扩展 TextView
)中获取属性 android:ellipsize
的值?
我试过这些方法,但没有用:
Log.d(TAG, attrs.getAttributeIntValue(ANDROID_NAMESPACE, "ellipsize", -1));
Log.d(TAG, attrs.getAttributeValue(ANDROID_NAMESPACE, "ellipsize"));
Log.d(TAG, attrs.getAttributeUnsignedIntValue(ANDROID_NAMESPACE, "ellipsize", 111));
Log.d(TAG, attrs.getAttributeListValue(ANDROID_NAMESPACE, "ellipsize", new String[] {"x", "marquee"}, -1));
注:attrs
是AttributeSet
(构造函数参数),ANDROID_NAMESPACE
是"http://schemas.android.com/apk/res/android"
。
getAttributeValue
方法在这个例子 (Kotlin) 中对我有用:
import android.content.Context
import android.util.AttributeSet
import android.widget.TextView
class Text(context: Context, attrs: AttributeSet) : TextView(context, attrs) {
init {
println("ellipsize: " +
attrs.getAttributeValue(
"http://schemas.android.com/apk/res/android",
"ellipsize"
)
)
}
}
它打印:
11-20 20:49:18.808 26804-26804/com.package.app I/System.out: ellipsize: 1
对于此视图:
<com.package.app.Text
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="start" />
如何在自定义 View
(扩展 TextView
)中获取属性 android:ellipsize
的值?
我试过这些方法,但没有用:
Log.d(TAG, attrs.getAttributeIntValue(ANDROID_NAMESPACE, "ellipsize", -1));
Log.d(TAG, attrs.getAttributeValue(ANDROID_NAMESPACE, "ellipsize"));
Log.d(TAG, attrs.getAttributeUnsignedIntValue(ANDROID_NAMESPACE, "ellipsize", 111));
Log.d(TAG, attrs.getAttributeListValue(ANDROID_NAMESPACE, "ellipsize", new String[] {"x", "marquee"}, -1));
注:attrs
是AttributeSet
(构造函数参数),ANDROID_NAMESPACE
是"http://schemas.android.com/apk/res/android"
。
getAttributeValue
方法在这个例子 (Kotlin) 中对我有用:
import android.content.Context
import android.util.AttributeSet
import android.widget.TextView
class Text(context: Context, attrs: AttributeSet) : TextView(context, attrs) {
init {
println("ellipsize: " +
attrs.getAttributeValue(
"http://schemas.android.com/apk/res/android",
"ellipsize"
)
)
}
}
它打印:
11-20 20:49:18.808 26804-26804/com.package.app I/System.out: ellipsize: 1
对于此视图:
<com.package.app.Text
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="start" />