我已經看到這個subject圍繞android textview放置一個邊框,我用它。但是現在,我想將邊框放置在相對佈局的小部件周圍。我該怎麼做?如何在android relativelayout周圍放置邊框?
回答
創建一個FrameLayout,獲取邊框的背景顏色以及邊框寬度的邊距或邊距,然後將該FrameLayout放置在您的RelativeLayout中。將TextView放在FrameLayout中,而不是直接放在RelativeLayout中。 poof即時邊框。
我不明白,請給我一個例子嗎? – AyaAndro
RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.borderEffect); // id fetch from xml
ShapeDrawable rectShapeDrawable = new ShapeDrawable(); // pre defined class
// get paint
Paint paint = rectShapeDrawable.getPaint();
// set border color, stroke and stroke width
paint.setColor(Color.GRAY);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(5); // you can change the value of 5
layout.setBackgroundDrawable(rectShapeDrawable);
-
在
- ,創建一個新的文件
background_border.xml
res/drawable
文件夾
在這個文件中,你將定義背景部件是這樣的:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- This is the stroke you want to define -->
<stroke android:width="1dp"
android:color="@color/color_stroke"/>
<!-- Optional, round your corners -->
<corners android:bottomLeftRadius="0dp"
android:topLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topRightRadius="0dp" />
<!-- Optional, fill the rest of your background with a color or gradient, use transparent if you only want the border to be displayed-->
<gradient android:startColor="@android:color/transparent"
android:endColor="@android:color/transparent"
android:angle="90"/>
</shape>
- 將您小部件的背景設置爲您剛剛創建的可繪製配置
例如。如果你想要把你的邊界上的RelativeLayout:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_border"
android:padding="15dp">
...
</RelativeLayout>
雖然所提供的所有答案的工作,他們都非常rigid.what如果您要自定義邊框顏色,爲了borderThickness不同的屏幕。爲此,您應該嘗試我的解決方案。我們將按照創建自定義RelativeLayout的三個步驟,允許您爲底部邊框提供borderColor和Thickness。
1)創建擴展的RelativeLayout一類並覆蓋上Draw方法
public class BorderRelativeLayout extends RelativeLayout {
private float borderThickness;
private int borderColor;
public BorderRelativeLayout(Context context) {
this(context, null, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Rect rect = new Rect();
Paint paint = new Paint();
paint.setColor(borderColor);
paint.setStrokeWidth(borderThickness);
getLocalVisibleRect(rect);
canvas.drawLine(rect.left, rect.bottom, rect.right, rect.bottom, paint);
}
private void init(Context context, AttributeSet attrs) {
setWillNotDraw(false);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.BorderRelativeLayout);
borderThickness = array.getDimension(R.styleable.BorderRelativeLayout_borderThickness, 0.5f);
borderColor = array.getColor(R.styleable.BorderRelativeLayout_borderColor,
ContextCompat.getColor(context, R.color.colorPrimary));
}
}
2)在attrs.xml定義風格化性質
<declare-styleable name="BorderRelativeLayout">
<attr name="borderThickness" format="dimension"/>
<attr name="borderColor" format="color"/>
</declare-styleable>
3)完成後,你可以使用它像
<com.spacewek.spacewek.controls.BorderRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/headLayout"
app:borderThickness="2dp"
app:borderColor="@color/divider_new_color">
</com.spacewek.spacewek.controls.BorderRelativeLayout>
這是矯枉過正 –
- 1. 如何在VariableSizedWrapGrid周圍放置邊框?
- 2. 如何在谷歌地圖周圍放置邊框
- 3. 如何在整個細胞周圍放置邊框?
- 4. Android:如何在按鈕周圍放置邊緣
- 5. Android - ListFragment周圍的邊框?
- 6. Android在SurfaceView周圍應用邊框
- 7. 如何在TableLayout周圍添加邊框?
- 8. 如何在QWidget周圍添加邊框?
- 9. 圍繞點放置邊框
- 10. GWT - 在畫布周圍放置黑色邊框ac
- 11. 是否可以在圖像周圍放置填充/邊框?
- 12. 在單選按鈕周圍放置css邊框
- 13. 如何在WPF運行時在控件周圍設置邊框?
- 14. 如何在邊框周圍添加另一個邊框?
- 15. 如何在Android中爲Layout(RelativeLayout)設置圖片邊框?
- 16. 如何在Blogger的主要內容周圍放置圖像邊框
- 17. 在LinearLayouts周圍環繞RelativeLayout
- 18. android cardview顯示卡周圍的邊框
- 19. 如何在元素周圍設置特定的邊框?
- 20. 如何在Twitter Bootstrap圖標周圍設置邊框?
- 21. UITableView周圍的邊框
- 22. CCLayer周圍的邊框
- 23. 圖像周圍的邊框
- 24. Emacs框架周圍的邊框/框架
- 25. 桌面周圍的邊框
- 26. 如何在圖像周圍創建邊框而不是在JLabel周圍創建邊框?
- 27. 如何畫周圍的臉邊框上的FrameLayout的Android
- 28. 縮放圖像以適合文本框周圍的邊框
- 29. 文本框周圍的部分邊框
- 30. 如何在x或y軸標籤周圍繪製框/邊框?
既然你沒有接受任何答案,你通過這個鏈接http://stackoverflow.com/questions/832359 9 /如何添加底部邊界在相對佈局 – surhidamatya
您的問題是重複的答案,請檢查此鏈接。 http://stackoverflow.com/a/17980889/801369 – dhuma1981