想要实现的效果如图:
mainactivity.xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="horizontal">
<TextView
android:id="@+id/tv"
android:layout_width="100dp"
android:layout_height="100dp"
android:gravity="center"
android:text="aaaaaaaaa"
android:textColor="@color/black" />
</LinearLayout>
</RelativeLayout>
MainActivity.java:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.widget.LinearLayout;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = findViewById(R.id.ll);
GradientDrawable drawable = new GradientDrawable();
// 设置圆角弧度为5dp
drawable.setCornerRadius(dp2px(this, 5f));
// 设置边框线的粗细为1dp,颜色为黑色【#000000】
drawable.setStroke((int) dp2px(this, 1f), Color.parseColor("#000000"));
layout.setBackground(drawable);
}
/**
* 将dp值转换为px值,保证尺寸大小不变
*
* @param context 上下文对象
* @param dipValue 需要转换的值
* @return 转换后的值
*/
private float dp2px(Context context, float dipValue) {
if (context == null) {
return 0;
}
final float scale = context.getResources().getDisplayMetrics().density;
return (float) (dipValue * scale + 0.5f);
}
}
然后就可以到达一个边框线的效果了,当然也可以自己在drawable中新建一个xml来实现边框线效果。
版权声明:本文为oAiYinSiTan12原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。