gpt4 book ai didi

java - 为什么 Canvas 会覆盖 Android Studio 中的所有其他内容?

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:27 25 4
gpt4 key购买 nike

所以我尝试使用 Canvas 在 Android Studio 中画一条线。为了画一条简单的线,您需要使用定义 contentView

setContentView(R.id.activity_main);

我似乎无法在 ImageView 或 TextView 之间进行组合,它们只是相互覆盖。

为了获得绘制的线条,我需要将 contentView 更改为

setContentView(DrawView);

如果我这样做,我所有其他的东西都会消失。

这是我的 2 个文件:

主要 Activity :

 public class MainActivity extends Activity {

DrawView drawLine;
ImageView view;
SeekBar seekBar;
DrawView drawView;

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.WHITE);
setContentView(drawView);
view.setZ(-1);
SeekBar seekBar = (SeekBar)findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressChanged = 0;
TextView text = (TextView)findViewById(R.id.textView);
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressChanged = progress;
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
text.setText("Progress: " + progressChanged);
}
});

}
}

DrawView:

public class DrawView extends View {

Paint paint = new Paint();
ImageView view = (ImageView)findViewById(R.id.imageView);
SeekBar seekBar = (SeekBar)findViewById(R.id.seekBar);
TextView text = (TextView)findViewById(R.id.textView);

public DrawView(Context context) {
super(context);
paint.setColor(Color.BLACK);
}

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

}

如何将 TextView 和/或 ImageView 与 Canvas 结合起来?

最佳答案

In order to draw a simple line, you need to define the contentView using

不一定。

In order to get the drawn lines, I need to change the contentView to

不一定。

How can I combine both the TextViews and/or ImageViews with the canvas?

第 1 步:在 DrawView 上实现双参数构造函数,该构造函数采用 ContextAttributeSet

第 2 步:在包含 ImageViewsTextViews 的布局资源文件中,包含 DrawView。请注意,您需要在 XML 元素名称中使用完全限定的类名称(例如,com.eriklann.android.DrawView)。

关于java - 为什么 Canvas 会覆盖 Android Studio 中的所有其他内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30346784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com