在我的应用程序中,我设计了一个自定义视图,这里是代码
public class Tunnel extends View implements View.OnTouchListener {
Paint paint = new Paint();
public Tunnel(Context context) {
super(context);
setOnTouchListener(this);
}
@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.RED);
for (int x = 0; x < canvas.getWidth(); x++) {
canvas.drawLine(x, (float) upperBound(x), x, (float) lowerBound(x), paint);
}
setBackgroundColor(Color.BLACK);
}
private double upperBound(double x) {
return 50 * Math.sin(x / 50) + 400;
}
private double lowerBound(double x) {
return 50 * Math.sin(x / 50) + 600;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
}
它看起来像这样
现在我需要做的是在此视图上添加一个自定义TextView,它将显示一些文本。据我所知,我的构造函数应该看起来像这样
public Tunnel(Context context) {
super(context);
setOnTouchListener(this);
TextView tv = new TextView(getContext());
tv.setX(200);
tv.setY(200);
//todo show the textView
}
但我不知道下一步该写些什么。如何将textView应用于我的视图? 提前致谢
答案 0 :(得分:0)
尝试
public Tunnel(Context context) {
super(context);
setOnTouchListener(this);
TextView tv = new TextView(getContext());
tv.setX(200);
tv.setY(200);
tv.setText("Text");
TheCustomView.addView(tv);
}
答案 1 :(得分:0)
我从线性布局继承了我的自定义视图,将其设置为执行onDraw方法,并且它对我有用
START TRANSACTION;
-- INSERT BLOCK FOR login_info
-- GET THE NEEDED KEY FROM login_info LAST INSERT
-- INSERT BLOCK FOR employee
-- INSERT BLOCK FOR address
COMMIT;