gpt4 book ai didi

java - 画形状?

转载 作者:搜寻专家 更新时间:2023-11-01 09:27:00 26 4
gpt4 key购买 nike

我试了很久都没有答案。我为该 View 使用了 setContentView(view)。但是,我有另一个 setContentView:

setContentView(R.layout.activity_main);//Buttons, Views from XML...
setContentView( mCustomDrawableView);//Custom Shape

问题是,它只显示ONE View ,即形状。在 XML 上定义的 Buttons 消失了。基本上最后调用的 setContentView(view) 是唯一被绘制的 View。我还尝试了许多其他方法来绘制形状,但没有有效的答案。

我已经看到多个 setContentView 确实相互重叠,但这是部分 工作的唯一方式。有什么方法可以同时显示 View 另一种绘制形状和我的XML View 的方法?

编辑:

我的形状是用 java 制作的,不是 XML

编辑 2:

这是我的 customShape 类:

 public class CustomDrawableView extends View {
private ShapeDrawable mDrawable;

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

int x = 10;
int y = 10;


mDrawable = new ShapeDrawable(new RectShape());
// If the color isn't set, the shape uses black as the default.
mDrawable.getPaint().setColor(0xff74AC23);
mDrawable.setBounds(x,y,x+10,y+10);
}

protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
}
}

最佳答案

好的... setContentView 是一种采用布局/ View /任何东西的东西,输入定义了您要设置的 Activity/fragment 的内容。

当然,您的第一个调用会完成整个布局,第二个调用会删除它并将内容设置为您要发送给它的内容。

重要的是拥有您的 View ,然后将其添加到布局中。如果您在初始 setContentView xml 中有任何名为 (+id) 和定义 (Layout x = getfromid(r.id.x) 的 View ,您可以使用 x.addview(myview) 或 x.addview( CustomDrawableView(context)).

-编辑澄清-

Activity/Fragment 具有您使用 setContentView 设置的布局。你这样做一次,通常。布局定义 View 的放置位置。

因此,您在 onCreate 中设置了 ContentView(your.xml)。如果你有一个编程 View 类,那么你可以做两件事:将新的 YourView 添加到你的 act/frag 中的命名和指定布局(使用 xml 中定义的任何布局,传递给你的 frag/act 在 setContentView 中传递的 xml 和然后在代码中通过 Layout x = findViewById(R.id.idoflayoutinxmlinfield 'android:id="@+id/x") 定义。

然后你可以 x.addview(new MyView(context)) 或 Myview z = new MyView(context) and x.addView(z);

-edit2-

当你变得更好时,你也可以通过将它添加到原始 xml 定义来将你的自定义 View 添加到原始布局。

-edit3-

叹息。好的。在这里:

在您的 Activity java 文件中:

RelativeLayout myRellayout;

@Override
public void onCreate(){
setContenView(your.xml)
myRelLayout = findViewByID(R.id.myrellayout);
myRelLayout.addView(new MyCustomView(this));
//or define your custom view and the add it by:
//MyCustomView mcv = new MyCustomView(this);
//myRelLayout.addView(mcv);
}

你的 xml 应该包含这样的任何布局:

<RelativeLayout
android:id="@+id/myrellayout"
android:width="whatever"
android:height="whatever"
/>

关于java - 画形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49836750/

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