在安卓4上的自定义视图中,无法直接从TypedArray获取可绘制内容。TypedArray是一种用于存储和操作特定类型数据的数组,通常用于在XML布局文件中定义自定义视图的属性。然而,在安卓4中,TypedArray只能用于获取基本数据类型的值,如整数、浮点数等,无法直接获取可绘制内容。
要在自定义视图中获取可绘制内容,可以通过以下步骤实现:
@drawable
来引用一个可绘制资源。context.obtainStyledAttributes(attrs, R.styleable.YourCustomView)
方法来获取。getDrawable()
方法获取可绘制内容的引用。注意,这里获取到的是Drawable对象,而不是直接的可绘制内容。onDraw()
方法中,使用获取到的Drawable对象进行绘制操作。可以使用draw()
方法将Drawable绘制到画布上。以下是一个示例代码:
public class YourCustomView extends View {
private Drawable drawable;
public YourCustomView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.YourCustomView);
drawable = typedArray.getDrawable(R.styleable.YourCustomView_customDrawable);
typedArray.recycle();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (drawable != null) {
drawable.setBounds(0, 0, getWidth(), getHeight());
drawable.draw(canvas);
}
}
}
在上述示例中,假设在XML布局文件中定义了一个名为customDrawable
的属性,用于引用可绘制资源。在自定义视图的构造函数中,通过getDrawable()
方法获取到Drawable对象,并在onDraw()
方法中将其绘制到画布上。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云