在自定义视图构造函数中获取android:ellipsize属性的值

时间:2017-11-20 19:33:05

标签: android attributes textview android-custom-view marquee

如何在自定义android:ellipsize(扩展View)中获取属性TextView的值?

我试过这些方法,但没有工作:

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));

注意:attrsAttributeSet(构造函数参数),ANDROID_NAMESPACE"http://schemas.android.com/apk/res/android"

1 个答案:

答案 0 :(得分:1)

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" />