在android中的ImageView上方绘制一条线

在android中的ImageView上方绘制一条线,android,imageview,android-canvas,Android,Imageview,Android Canvas,我有一个自定义的imageView,比如说MyImageView类,我试图在上面画一些线 public class MyImageView extends ImageView { public MyImageView(Context context) { super(context); invalidate(); // TODO Auto-generated constructor stub } public MyImageView(Context context,

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

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);


}
}
在我的活动类中,我通过位图将图像设置为该自定义图像视图

MyImageView imageView;
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    imageView=(MyImageView)findViewById(R.id.image);
    Bitmap dbitmap = BitmapFactory.decodeResource(getResources(), R.drawable.dinkan);
    Bitmap bitmap = dbitmap.copy(Bitmap.Config.ARGB_8888, true);
    imageView.setImageBitmap(bitmap);
    imageView.invalidate();
}

现在的问题是,这些线是在图像下面画的,这样我就看不见了。我想在图像上画线。我应该如何实现它?

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

您可以通过创建这样的视图来添加水平线

<View
    android:id="@+id/line_77"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:layout_below="@+id/relativeLayout8"
    android:layout_marginTop="5dp" />


您是否尝试过在super.onDraw()下面编写canvas.drawLine代码?好的。成功了。你应该把它写下来作为答案。:)写下来作为回答:)