android - 如何以编程方式设置自定义 View 的宽度和高度?

标签 android android-layout classcastexception

我创建了一个名为 MyDraw 的自定义 View ,这是我的 MyDraw 代码,

public class MyDraw extends View {


    public MyDraw(Context context) {
        super(context);

    }

    public MyDraw(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    public MyDraw(Context context, AttributeSet attrs) {
        super(context, attrs);

    }
         ........................................
}

我已经使用包名称在 XML 文件中添加了 View 。它工作正常。现在我想在运行时为 MyDraw 设置高度和宽度,为此我使用了以下代码,

mMyDraw.setLayoutParams(new LayoutParams(220, 300));

但我遇到了异常,

java.lang.ClassCastException: android.view.ViewGroup$LayoutParams

如何解决这个异常? 请帮助我..

最佳答案

您必须覆盖 View 的 onMeasure() 方法。

一个很好的例子,你可以在这里查看:http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/

这里是我推荐的一个非常酷的视频:http://marakana.com/forums/android/general/563.html

希望这对您有所帮助!

关于android - 如何以编程方式设置自定义 View 的宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558071/

相关文章:

java - 无法导入 import android.support.v7.widget.RecyclerView;

Android:限制 Webview 中的缩小

java - Android:通过 android 数据绑定(bind)将 lambda 传递给回收器适配器

不使用背景图片的Android布局形状?

android - 将屏幕分为SurfaceView和xml布局

android - 这可行,但它是 "right"方式吗?

java - 如何从对象中获取 boolean 值

java - HeaderElement1_1Impl ClassCastException Java 使用 JDK 而不是 saaj-impl

java - 安卓, "Error in an XML file: aborting build."

java - Java中从Object类型转换为Integer类型时出现ClassCastException