在android中的ImageView上方画一条线

时间:2016-03-07 07:33:42

标签: android imageview android-canvas

我有一个自定义的imageView,比如MyImageView类,我试图在它上面画一些线。

var new = [ {date: '2016-02-21', value: '10'}, {date: '2016-03-07', value: '20'} ];

在我的活动课程中,我借助位图将图像设置为自定义imageView。

public class MyImageView extends ImageView
{

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

    invalidate();
    // TODO Auto-generated constructor stub
}

public MyImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
    invalidate();
}

public MyImageView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    invalidate();
}

@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
    p.setColor(Color.BLACK);
    canvas.drawLine(0, 0, 100, 100, p);

    canvas.drawLine(0, 0, 20, 20, p);
    canvas.drawLine(20, 0, 0, 20, p);
    super.onDraw(canvas);


}
}

所以现在的问题是,在图像下绘制线条以便我看不到它。我希望在图像上绘制线条。我该如何实施呢?

2 个答案:

答案 0 :(得分:2)

尝试在canvas.drawLine()下面编写super.onDraw(canvas)代码。这意味着首先会发生imageview的默认实现,然后是自定义实现,即将绘制该行。

答案 1 :(得分:0)

您可以通过创建像这样的视图

来添加水平线
<View
    android:id="@+id/line_77"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:layout_below="@+id/relativeLayout8"
    android:layout_marginTop="5dp" />