作者:左右印象摄影 | 来源:互联网 | 2023-05-21 17:05
我已经就这个问题做了一些研究,但我还没有找到类似的东西.
首先我使用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;
}
rahul shah..
10
您可以尝试通过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.
1> rahul shah..:
您可以尝试通过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.