如何使用onDraw指定自定义视图的高度/宽度?

xrd

我正在实现自定义视图。我想在用户触摸FrameLayout内部托管的ImageView中的点时向FrameLayout添加一堆圆圈。现在,我正在以20的半径绘制onDraw方法。但是,当我将其放入FrameLayout时,它只是显示了一个小角。如何告诉自定义视图其宽度/高度也应该为20?我应该在自定义视图中还是在实例化自定义视图后调用addView的活动中执行此操作?

public class MyCircle extends View {

Paint paint;
private static final int RADIUS = 20;

public MyCircle(Context context) {
    super(context);
    paint = new Paint();
    paint.setColor(Color.WHITE);
    setLayoutParams(new ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));
//        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( RADIUS * 2 , RADIUS * 2 );
//        setLayoutParams(layoutParams);
}

@Override
public void onDraw( Canvas canvas ) {
    canvas.drawCircle(0, 0, RADIUS, paint );
}
}

活动代码基本上是这样的(从具有X / Y坐标的onTouch处理程序中调用):

    MyCircle circle;
    circle = new MyCircle(this);
    circle.setX( x );
    circle.setY( y );
    FrameLayout root = (FrameLayout)findViewById(R.id.image_review_frame);
    root.addView( circle );
史密斯

覆盖onMeasure()

@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
 float density = context.getResources().getDisplayMetrics().density;
 setMeasuredDimension (RADIUS * density,RADIUS * density);
 return;
}

代码re:density是将dp转换为像素(例如xhdpi显示器的密度为2.0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用onDraw()创建自定义视图时发生NullPointerException

来自分类Dev

如何将布局宽度/高度的值传递给自定义视图类

来自分类Dev

如何设置角度模态自定义高度和宽度

来自分类Dev

如何使用dompdf设置pdf的自定义宽度和高度?

来自分类Dev

如何使用selectize.js jquery插件设置select的自定义高度和宽度?

来自分类Dev

Ondraw方法未在自定义视图中调用

来自分类Dev

自定义视图按钮的onDraw()方法不会绘制

来自分类Dev

Android自定义视图onDraw不起作用

来自分类Dev

Invalidate不会调用自定义视图类的onDraw

来自分类Dev

在自定义复杂视图中优化onDraw()

来自分类Dev

如何快速使用自定义视图?

来自分类Dev

反应响应高度/宽度样式的本机自定义iOS视图

来自分类Dev

自定义视图未显示:没有高度,但仍然有宽度

来自分类Dev

如何指定嵌套的自定义视图类?

来自分类Dev

Android:自定义操作栏,如何使用整个宽度?

来自分类Dev

如何使用自定义宽度动态添加RadioButton?

来自分类Dev

如何计算自定义滚动条的高度和宽度?

来自分类Dev

插入后如何在自定义ImageView中获取位图的宽度和高度

来自分类Dev

使用宽度和高度过大的自定义类创建圆形指示器

来自分类Dev

使用宽度和高度过大的自定义类创建圆形指示器

来自分类Dev

自定义jQuery UI Slider的高度和宽度

来自分类Dev

设置自定义对话框的高度和宽度

来自分类Dev

Nivo Slider自定义高度/宽度问题

来自分类Dev

bxSlider图片自定义高度和宽度

来自分类Dev

对话框自定义宽度高度问题

来自分类Dev

创建自定义 AlertDialog Box 高度和宽度

来自分类Dev

从主活动中调用自定义视图。打印onDraw()中的消息,但不呈现自定义视图

来自分类Dev

从主活动中调用自定义视图。打印onDraw()中的消息,但不呈现自定义视图

来自分类Dev

具有自定义视图层次结构的ListFragment在onViewCreated中的子级零宽度/高度结果

Related 相关文章

  1. 1

    使用onDraw()创建自定义视图时发生NullPointerException

  2. 2

    如何将布局宽度/高度的值传递给自定义视图类

  3. 3

    如何设置角度模态自定义高度和宽度

  4. 4

    如何使用dompdf设置pdf的自定义宽度和高度?

  5. 5

    如何使用selectize.js jquery插件设置select的自定义高度和宽度?

  6. 6

    Ondraw方法未在自定义视图中调用

  7. 7

    自定义视图按钮的onDraw()方法不会绘制

  8. 8

    Android自定义视图onDraw不起作用

  9. 9

    Invalidate不会调用自定义视图类的onDraw

  10. 10

    在自定义复杂视图中优化onDraw()

  11. 11

    如何快速使用自定义视图?

  12. 12

    反应响应高度/宽度样式的本机自定义iOS视图

  13. 13

    自定义视图未显示:没有高度,但仍然有宽度

  14. 14

    如何指定嵌套的自定义视图类?

  15. 15

    Android:自定义操作栏,如何使用整个宽度?

  16. 16

    如何使用自定义宽度动态添加RadioButton?

  17. 17

    如何计算自定义滚动条的高度和宽度?

  18. 18

    插入后如何在自定义ImageView中获取位图的宽度和高度

  19. 19

    使用宽度和高度过大的自定义类创建圆形指示器

  20. 20

    使用宽度和高度过大的自定义类创建圆形指示器

  21. 21

    自定义jQuery UI Slider的高度和宽度

  22. 22

    设置自定义对话框的高度和宽度

  23. 23

    Nivo Slider自定义高度/宽度问题

  24. 24

    bxSlider图片自定义高度和宽度

  25. 25

    对话框自定义宽度高度问题

  26. 26

    创建自定义 AlertDialog Box 高度和宽度

  27. 27

    从主活动中调用自定义视图。打印onDraw()中的消息,但不呈现自定义视图

  28. 28

    从主活动中调用自定义视图。打印onDraw()中的消息,但不呈现自定义视图

  29. 29

    具有自定义视图层次结构的ListFragment在onViewCreated中的子级零宽度/高度结果

热门标签

归档