简单的自定义类扩展视图
Posted
技术标签:
【中文标题】简单的自定义类扩展视图【英文标题】:simple custom class extends view 【发布时间】:2011-03-21 11:09:59 【问题描述】:我想创建一个自定义视图类。但是运行应用程序时出现错误。
这是我的课:
package test.start;
import android.util.AttributeSet;
import android.view.*;
import android.graphics.*;
import android.content.Context;
public class control extends View
private Paint paint;
public control(Context context, AttributeSet attrs, int defStyle)
super(context, attrs, defStyle);
init();
public void init()
paint = new Paint();
paint.setTextSize(12);
paint.setColor(0xFF668800);
paint.setStyle(Paint.Style.FILL);
@Override
protected void onDraw(Canvas canvas)
canvas.drawText("TEEEST", 100, 100, paint);
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
this.setMeasuredDimension(150,200);
和 main.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:orientation="vertical">
<TextView android:id="@+id/textView1" android:text="@string/text" android:layout_ android:layout_></TextView>
<TableLayout android:layout_ android:layout_ android:id="@+id/tableLayout1">
<Button android:id="@+id/button2" android:layout_ android:layout_ android:text="Button" android:background="@drawable/custom_button" android:layout_weight="1"></Button>
<Button android:layout_ android:id="@+id/button1" android:layout_ android:text="@string/button" android:layout_weight="1"></Button>
<test.control
android:id="@+id/control"
android:layout_
android:layout_> </test.control>
</TableLayout>
</LinearLayout>
错误信息:
无法开始活动 组件信息de.me.start/test.start.StartActivitiy: android.view.InflateException:二进制 XML 文件第 10 行:膨胀错误 类 test.start.control 块引用
但我可以在图形布局中查看控件。
【问题讨论】:
【参考方案1】:尝试提供其他版本的构造函数:
public control(Context context, AttributeSet attrs)
super(context, attrs);
init();
【讨论】:
【参考方案2】:你应该通过以下方式在 XML 中声明它:
<view class="de.test.start.control"
android:id="@+id/control"
android:layout_
android:layout_> </view>
【讨论】:
我做到了。是否有任何示例项目,具有预定义的类扩展视图? @Passy 你好,Passy,你找到你搜索过的任何示例项目了吗?...如果有的话,请与我们分享。谢谢以上是关于简单的自定义类扩展视图的主要内容,如果未能解决你的问题,请参考以下文章
带有来自模型的自定义验证消息的 Django 1.5 基于类的视图
Spring Boot - 如何通过实现 BeforeAllCallback 的自定义扩展类设置或覆盖 application.yml 中定义的属性?