Android自定义视图可以';不要使用alignParentButton或wrap\u内容
我有一个我不知道如何解决的问题。我已经创建了一个自定义视图,并希望将其与相对布局中的parrent buttom对齐,但当我这样做时,视图变得透明了?!这怎么可能? 另外,如果我设置了“周围视图布局”\u height=wrap\u content,它将填充整个屏幕。我如何配置它,不这样做,而只是包装内容 这是我的自定义视图Android自定义视图可以';不要使用alignParentButton或wrap\u内容,android,custom-view,Android,Custom View,我有一个我不知道如何解决的问题。我已经创建了一个自定义视图,并希望将其与相对布局中的parrent buttom对齐,但当我这样做时,视图变得透明了?!这怎么可能? 另外,如果我设置了“周围视图布局”\u height=wrap\u content,它将填充整个屏幕。我如何配置它,不这样做,而只是包装内容 这是我的自定义视图 import android.content.Context; import android.graphics.Canvas; import android.graphic
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.RelativeLayout;
public class HomeMenuBackground extends View
{
private int mScreenWidth;
private int mScreenHeight;
private RectF mSpace;
private RectF mSpaceStroke;
private Paint mPaint;
private Paint mPaintStroke;
private Rect mRect;
private LinearGradient mGradient;
public HomeMenuBackground(Context context, AttributeSet attrs)
{
super(context, attrs);
mScreenWidth = context.getResources().getDisplayMetrics().widthPixels;
mScreenHeight = context.getResources().getDisplayMetrics().heightPixels;
final int mHeighMenu = (int) (mScreenHeight*0.8);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSpace = new RectF(-20, 2, mScreenWidth + 20, 148);
mSpaceStroke = new RectF(-22, 0, mScreenWidth + 22, 150);
mRect = new Rect();
mPaintStroke = new Paint();
mPaintStroke.setStyle(Paint.Style.STROKE);
mPaintStroke.setStrokeCap(Paint.Cap.ROUND);
mPaintStroke.setStrokeWidth(2);
mPaintStroke.setColor(Color.BLACK);
mPaintStroke = new Paint(Paint.ANTI_ALIAS_FLAG);
}
@Override
public void onDraw(Canvas canvas)
{
mRect.set(0, 75, canvas.getWidth(), canvas.getHeight());
canvas.drawArc(mSpaceStroke, 180, 360, true, mPaintStroke);
canvas.drawArc(mSpace, 180, 360, true, mPaint);
canvas.drawRect(mRect, mPaint);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
if(mGradient == null)
{
mGradient = new LinearGradient(0, 0, 0, MeasureSpec.getSize(heightMeasureSpec), Color.WHITE, Color.GRAY, Shader.TileMode.MIRROR);
mPaint.setShader(mGradient);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
我希望你能帮助我
BR FireFly3000要决定自定义视图的高度和宽度,您可以替代该方法,并根据需要提供视图的高度和宽度。我尝试了RelativeLayout,我可以通过使用
setMeasuredDimension(100100)在底部看到高度和宽度为(100100)的布局代码>内部onMeasure()
方法。setMeasuredDimension标记为final,但您可以重写