gpt4 book ai didi

android - 将自定义矩形添加到自定义 RelativeLayout

转载 作者:行者123 更新时间:2023-11-29 22:15:22 24 4
gpt4 key购买 nike

我有一个自定义的 RelativeLayout,我想在其中动态创建矩形。

它们没有显示在我当前的代码中,但我不知道是什么原因。

自定义相对布局:

public class DrawView extends RelativeLayout {

public DrawView(Context context) {
super(context);
setFocusable(true);

this.addView(new Rectangle(this.getContext()));
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

}

自定义矩形:

public class Rectangle extends View {

public Rectangle(Context context) {
super(context);
}

public Rectangle(Context context, AttributeSet attrs) {
super(context, attrs);
}

public Rectangle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.WHITE);

canvas.drawRect(new Rect(), paint);

}

}

编辑:解决方案是:

public class Rectangle extends View {

public Rectangle(Context context) {
super(context);
init();
}

public Rectangle(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public Rectangle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}

private void init() {
this.setBackgroundResource(R.drawable.rectangle);

}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int width = 150;
int height = 50;

setMeasuredDimension(width, height);
}

}


<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="5sp"/>
<gradient
android:angle="315"
android:startColor="#FFFF6666"
android:endColor="#FFFF1111"
android:type="linear"
/>
</shape>

最佳答案

我认为您没有设置 Shape 的 LayoutParams。尝试创建一个 Rectangle 对象,设置其宽度 + 高度,然后将其添加到您的 RelativeLayout :D

关于android - 将自定义矩形添加到自定义 RelativeLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624258/

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