gpt4 book ai didi

android - LinearLayout 使用没有 XML 的 java 代码动态设置边框颜色

转载 作者:太空狗 更新时间:2023-10-29 15:41:21 28 4
gpt4 key购买 nike

我已经对这个问题做了一些研究,但我还没有发现任何类似的东西。

首先我使用 ShapeDrawable 制作线性布局的边框然后我尝试在 LinearLayout 上设置背景颜色但颜色未设置然后我评论两行 ShapeDrawable 然后在我设置线性布局的背景颜色之后出现问题边框颜色。

这是我通过背景颜色和边框颜色的JSON得到的值。

我想通过 java 代码动态设置线性布局的背景颜色和边框颜色。

请指导我。

谢谢

LinearLayout linearToAdd = new LinearLayout(getActivity());
linearToAdd.setOrientation(VERTICAL);
float d = getActivity().getResources().getDisplayMetrics().density;

linearToAdd.setBackgroundColor(Color.parseColor((String)(mPod.getBackground())));

switch(parentType){
case LINEAR_LAYOUT:
LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams((int)(mPod.getWidth()*d),(int)(mPod.getHeight()*d));
Log.d(TAG,"LinLay, W,H,T,L: "+mPod.getWidth()+", "+mPod.getHeight()+", "+mPod.getLeft()+", "+mPod.getTop());
linearParams.setMargins(mPod.getLeft(), mPod.getTop(), 0,0);
linearToAdd.setLayoutParams(linearParams);

ShapeDrawable rectShapeDrawable1 = new ShapeDrawable();
Paint paint1 = rectShapeDrawable1.getPaint();
// paint1.setColor(Color.rgb(0, 0, 0));
paint1.setStyle(Paint.Style.STROKE);
paint1.setStrokeWidth(3);

// linearToAdd.setBackgroundDrawable(rectShapeDrawable1);

break;
}

最佳答案

您可以尝试使用 GradientDrawable 来实现。我试过这个。希望对您有所帮助。

GradientDrawable drawable = new GradientDrawable();
drawable.setShape(GradientDrawable.RECTANGLE);
drawable.setStroke(3, Color.BLACK);
drawable.setCornerRadius(8);
drawable.setColor(Color.BLUE);
linearToAdd.setBackgroundDrawable(drawable);

在您的 XML 布局中,将 android:padding="1dp"赋予 linearToAdd。

关于android - LinearLayout 使用没有 XML 的 java 代码动态设置边框颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559644/

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