【发布时间】:2014-11-15 15:54:09
【问题描述】:
我开始第一次尝试编写一个 Android 应用程序。我想可视化 pi 的 Monte-Carlo-Approximation。因此,我首先想在视图上绘制一个圆圈,但我没有让它工作! 我试图创建自己的“CircleView”类,它扩展了“View”并覆盖了 onDraw(..) 方法,就像这里解释的那样:How to draw circle by canvas in Android?
这是我的 CircleView 类
public class CircleView extends View {
public CircleView(Context context) {
super(context);
}
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(150);
canvas.drawCircle(50,50,20,paint);
}
}
我已使用以下 XML 代码将 CircleView 插入到 LinearLayout 中
<com.tak3r07.montecarlopi.CircleView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/circleView"
android:layout_weight="1"/>
(顺便说一句,Android Studio 在右侧的 XML 视图中告诉我:“渲染问题自定义视图 CircleView 未使用 2 或 3 参数视图构造函数;XML 属性将不起作用”)
应用程序崩溃并显示以下日志:http://pastebin.com/Gv1GaHtX
谁能告诉我我做错了什么?
我认为这种设置会创建一个带有显示圆圈的视图的活动。
问候
编辑:通过在 CircleView 中添加 2 和 3 参数构造函数来修复崩溃(参见 https://stackoverflow.com/a/13797457/3248708)
但现在我仍然没有在活动中看到任何圈子
【问题讨论】:
-
您在编辑器或设备上没有看到任何圆圈?
-
设备上的@DanielBo
-
为什么不在 XML 中创建一个圆形并将其作为源添加到 ImageView 中?
-
您是否尝试设置固定的宽度和高度值,例如 100dp?
-
@joao2fast4u 是的,我已经尝试过了。其他的不知道,我明天试试