我想创建一个带有弧形背景的视图..我的视图重量为.3 ..这使得它填充了我布局的三分之一..
我尝试将其背景设置为弧形(我希望它是半椭圆形),如下所示:
ArcShape shape = new ArcShape(270, 180);
ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
shapeDrawable.getPaint().setColor(getResources().getColor(R.color.primary_color));
leftPathView.setBackgroundDrawable(shapeDrawable);
这会生成我需要的形状,但它不会填充我视图的空间..它只占用了一半..但是当我创建一个完整的圆圈时,它占用了所有的空间..
任何想法?
答案 0 :(得分:0)
final LinearLayout leftPathView= (LinearLayout) findViewById(R.id.left_path_view);
layout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
leftPathView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
leftPathView.setX(-layout.getWidth());
leftPathView.getLayoutParams().width = layout.getWidth() * 2;
leftPathView.requestLayout();
}
});
ArcShape shape = new ArcShape(270, 180);
ShapeDrawable shapeDrawable = new ShapeDrawable(shape);
shapeDrawable.getPaint().setColor(getResources().getColor(R.color.primary_color));
layout.setBackground(shapeDrawable);
此代码确实会使您的视图超出屏幕范围,因此在向此视图添加其他项目时,您需要考虑到这一点。解决方案可能是将View放在RelativeLayout中,并将另一个视图放在leftPathView的顶部。