- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试了很久都没有答案。我为该 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/
我想以 headless 模式(屏幕上根本没有 GUI)将 JPanel 绘制到 BufferedImage 中。 final JPanel panel = createPanel(); panel.
我是 Canvas 的新手,正在尝试创建看起来逼真的 float 粒子动画。 目前,我正在创建 400 个随机散布在 400x400 Canvas 上的粒子。 然后,在每个 requestAnimat
有没有办法在悬停时停止悬 float 画? :hover 这是一个显示动画的链接: https://codepen.io/youbiteme/pen/RprPrN 最佳答案 只需为您的 svg 悬停添
我想在谷歌地图上绘制覆盖图,其中除了特定点周围 1.5 公里半径以外的所有内容都被遮蔽了。为此,我尝试使用带有大量边框的圆圈,所以我会在边框中放置透明中心和覆盖颜色来实现这一点,但它无法渲染。
我正在尝试通过扩展类 UIView 来创建自定义 View ,该类可以在自定义 View 的中心显示一个圆圈。为了添加自定义绘图,我重写了 draw(_ rect: CGRect) 方法,如下所示。
我是一名优秀的程序员,十分优秀!