我正在尝试通过开发人员页面上给出的android示例进行工作.
它提供了两种在画布上绘画的方式.第一种方法是使用名为CustomDrawableVIEw的类,如下所示:
public class CustomDrawableVIEw extends VIEw {private ShapeDrawable mDrawable;public CustomDrawableVIEw(Context context) {super(context);int x = 10;int y = 10;int wIDth = 300;int height = 50;mDrawable = new ShapeDrawable(new ovalShape());mDrawable.getPaint().setcolor(0xff74AC23);mDrawable.setBounds(x, y, x + wIDth, y + height);}protected voID onDraw(Canvas canvas) {mDrawable.draw(canvas);}}
然后由主类调用:
CustomDrawableVIEw mCustomDrawableVIEw;protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomDrawableVIEw = new CustomDrawableVIEw(this); setContentVIEw(mCustomDrawableVIEw);}
但随后该教程说:
如果要从XML布局而不是从Activity绘制此自定义可绘制对象,则CustomDrawable类必须重写VIEw(Context,AttributeSet)构造函数,该构造函数在通过XML的膨胀实例化VIEw时调用.然后将CustomDrawable元素添加到XML,如下所示:
<com.example.shapedrawable.CustomDrawableVIEw androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" />
我已经成功运行了第一个示例,但是我不知道如果我想采用第二个选项,代码应该是什么样.
大概,我从@OverrIDe VIEw开始,但是后来我陷入了困境.
之所以要这样做,是因为我想创建一个仅覆盖屏幕一部分的画布,以便在另一部分容纳按钮和文本.
解决方法:
如果教程是正确的,那么您所做的唯一更改就是添加该构造函数.您可能希望将可绘制的初始化代码移至单独的方法.
public CustomDrawableVIEw(Context context, AttributeSet attrs) { super(context, attrs); initDrawable();}
XML文件
<com.example.shapedrawable.CustomDrawableVIEw androID:ID="+ID/custom_drawable_vIEw" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" />
这样您就可以获得视图.
CustomDrawableVIEw mCustomDrawableVIEw;protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); // assuming your layout is named main.xml mCustomDrawableVIEw = (CustomDrawableVIEw) findVIEwByID(R.ID.custom_drawable_vIEw);}
总结 以上是内存溢出为你收集整理的如何在Android中使用xml布局进行绘制全部内容,希望文章能够帮你解决如何在Android中使用xml布局进行绘制所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)