我正在尝试使用canvas
在Android中绘制一行我的班级:
public class LineDrawer extends View {
public LineDrawer(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(10);
float left = 20;
float top = 20;
float right = 50;
float bottom = 100;
canvas.drawLine(left, top, right, bottom, paint);
}
}
我的主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LineDrawer lineDrawer = new LineDrawer(this);
setContentView(R.layout.activity_Main);
}
}
我找不到问题出在哪里,我尝试了互联网上的所有解决方案,但没有任何反应,仍然是空白活动..
我应该导入一些代码吗?
答案 0 :(得分:0)
lineDrawer
已创建,但未在任何地方添加。仅创建视图是不够的,您需要将其添加到当前显示的视图中以便考虑和绘制。您有两种选择:
将其添加到XML布局中。您必须将以下构造函数添加到自定义视图中。
public LineDrawer(Context context, AttributeSet attrs) {
super(context, attrs);
}
作为附加注释,应在视图初始化时创建Paint paint
对象,这是一项代价高昂的操作。有关详细信息,请参阅original documentation。