Android自定义视图onDraw
我试图创建一个控件,它是另一个控件的组合。我试过很多方法,但似乎都不管用。。。你问我为什么需要这个?因为Android自定义视图onDraw,android,canvas,view,custom-controls,Android,Canvas,View,Custom Controls,我试图创建一个控件,它是另一个控件的组合。我试过很多方法,但似乎都不管用。。。你问我为什么需要这个?因为 我面临着无法使用创建TextView的问题 阴影和渐变前景的不同颜色 我想做些什么 一个卷文本,它将由这个自定义控件显示 public class MainMenuItem extends View { private MainMenuItemHelper firstLayerItem; private MainMenuItemHelper secondLayerItem;
public class MainMenuItem extends View {
private MainMenuItemHelper firstLayerItem;
private MainMenuItemHelper secondLayerItem;
...
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
secondLayerItem.draw(canvas);
firstLayerItem.draw(canvas);
}
}
public class MainMenuItemHelper extends TextView {
private List<DrawCommand> commands;
...
@Override
protected void onDraw(Canvas canvas) {
for (DrawCommand command : commands) {
command.draw(canvas, getPaint());
super.onDraw(canvas);
}
}
}
public类MainMenuItem扩展视图{
private MainMenuItemHelper firstLayerItem;
private MainMenuItemHelper secondLayerItem;
...
@凌驾
受保护的void onDraw(画布){
super.onDraw(帆布);
第二层绘画(画布);
第一层绘画(画布);
}
}
公共类MainMenuItemHelper扩展了TextView{
私有列表命令;
...
@凌驾
受保护的void onDraw(画布){
用于(DrawCommand命令:命令){
draw(canvas,getPaint());
super.onDraw(帆布);
}
}
}
RelativeLayout
或LinearLayout
这样的布局。您需要一个视图组
我不知道您想将其放置在何处以及如何放置,但最简单的方法是简单地创建一个包含控件的xml文件,并像通常那样设置它们的样式
阴影颜色可以由android:shadowColor定义,以便为文本设置阴影
将文本本身设置为渐变可能非常棘手。确定要在循环中调用
super.onDraw()
?工作并不意味着这是一个好主意:)您是否尝试过使用
或
?您对“渐变前景”有何理解?如果你想在文本视图上绘制一些东西,你至少应该先调用super.onDraw()
,然后再调用你自己的前景
我不明白你想做什么,但是绿色和红色不是很好的可读文本颜色。。。无论如何没有你想要实现的截图,我放弃了。对不起,谢谢!!!!非常感谢。非常感谢。我花了大约5个小时试图解决这个问题,再一次谢谢你!!!!非常感谢。非常感谢。