둥근 모서리로 레이아웃을 만드는 방법...?
모서리가 둥근 레이아웃을 만들려면 어떻게 해야 합니까?둥근 모서리를 제 옷에 적용하고 싶습니다.LinearLayout
.
1: 그리기 가능한 항목에서 layout_bg.xml을 정의합니다.
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="3dp" android:color="#B1BCBE" />
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
2: 추가layout_bg.xml
의
android:background="@drawable/layout_bg"
API 21+의 경우 클립 뷰 사용
이 근둥윤이추가습었니다되다음에에 되었습니다.View
클래스는 API 21에 있습니다.자세한 내용은 이 교육 문서 또는 이 참조 문서를 참조하십시오.
이 내장된 기능을 통해 둥근 모서리를 구현하기가 매우 쉽습니다.모든 뷰 또는 레이아웃에서 작동하며 적절한 클리핑을 지원합니다.
해야 할 일:
- 모양 한 모양을 합니다.
android:background="@drawable/round_outline"
- 코의개설명는클립하를:
setClipToOutline(true)
를 설정할 수 입니다.android:clipToOutline="true"
XML, 그러나 이 버그는 이제 최종적으로 해결되었으며 문서에는 코드에서만 이 작업을 수행할 수 있다고 올바르게 명시되어 있습니다.
모양:
이미지 보기에 대한 특별 참고 사항
setClipToOutline()
보기의 배경이 그리기 가능한 모양으로 설정된 경우에만 작동합니다.이 배경 모양이 존재하는 경우 보기는 배경의 윤곽선을 잘라내기 및 음영 처리를 위한 테두리로 처리합니다.
즉, 이미지 보기에서 모서리를 반올림하려는 경우setClipToOutline()
당신의 이미지는 에서 나와야 합니다.android:src
에 android:background
(원형 모양에 배경이 사용되므로).해야 하는 과 같은 해결 을 사용할 수 . src 대 신 배 사 이 다 있 니 수 습 사 할 용 을 법
- 배경이 도형 그리기 가능으로 설정된 외부 레이아웃 작성
- 해당 레이아웃을 이미지 보기 주위로 래핑(패딩 없음)
- 이제 이미지 보기(레이아웃의 다른 항목 포함)가 외부 레이아웃의 둥근 모양으로 잘립니다.
흰색 배경, 검은색 테두리, 둥근 모서리로 그림 그리기를 위한 XML 파일의 복사본입니다.
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff"/>
<stroke android:width="3dp"
android:color="#ff000000"
/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"
/>
<corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
</shape>
그리기 가능한 디렉토리에 xml 파일로 저장합니다. 리소스 이름(R.drawable)을 사용하여 그리기 가능한 배경(아이콘 또는 리소스 파일)을 사용하는 것처럼 사용합니다.your_xml_name)
Android v7 지원 라이브러리에서 CardView를 사용합니다.조금 무겁지만, 모든 문제를 해결하고 충분히 쉽습니다.설정된 그리기 가능한 배경 방법과 달리 하위 뷰를 성공적으로 클리핑할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="0dp"
card_view:contentPadding="0dp">
<YOUR_LINEARLAYOUT_HERE>
</android.support.v7.widget.CardView>
나는 다음과 같은 방법을 수행했습니다.
스크린샷 확인:
이름을 지정한 그리기 가능한 파일 만들기custom_rectangle.xml
그리기 가능한 폴더:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@android:color/white" />
<corners android:radius="10dip" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
</shape>
이제 보기에 직사각형 배경 적용:
mView.setBackground(R.drawlable.custom_rectangle);
다 했어요.
두 가지를 통합하는 것이 더 좋은 방법이라고 생각합니다.
이렇게 하면 코너가 있는 콘텐츠와 같이 다른 솔루션이 해결하지 못한 사례를 처리할 수 있습니다.
2개가 아닌 단일 레이어를 보여주기 때문에 GPU에 조금 더 친숙하다고 생각합니다.
더 나은 유일한 방법은 완전히 맞춤화된 보기를 만드는 것이지만, 그것은 많은 코드이고 많은 시간이 걸릴 수 있습니다.저는 제가 여기서 제안한 것이 두 세계의 최고라고 생각합니다.
다음은 이 작업을 수행하는 방법에 대한 일부입니다.
둥근 모서리 그리기 가능.java
/**
* shows a bitmap as if it had rounded corners. based on :
* http://rahulswackyworld.blogspot.co.il/2013/04/android-drawables-with-rounded_7.html
* easy alternative from support library: RoundedBitmapDrawableFactory.create( ...) ;
*/
public class RoundedCornersDrawable extends BitmapDrawable {
private final BitmapShader bitmapShader;
private final Paint p;
private final RectF rect;
private final float borderRadius;
public RoundedCornersDrawable(final Resources resources, final Bitmap bitmap, final float borderRadius) {
super(resources, bitmap);
bitmapShader = new BitmapShader(getBitmap(), Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
final Bitmap b = getBitmap();
p = getPaint();
p.setAntiAlias(true);
p.setShader(bitmapShader);
final int w = b.getWidth(), h = b.getHeight();
rect = new RectF(0, 0, w, h);
this.borderRadius = borderRadius < 0 ? 0.15f * Math.min(w, h) : borderRadius;
}
@Override
public void draw(final Canvas canvas) {
canvas.drawRoundRect(rect, borderRadius, borderRadius, p);
}
}
CustomView.java
public class CustomView extends ImageView {
private View mMainContainer;
private boolean mIsDirty=false;
// TODO for each change of views/content, set mIsDirty to true and call invalidate
@Override
protected void onDraw(final Canvas canvas) {
if (mIsDirty) {
mIsDirty = false;
drawContent();
return;
}
super.onDraw(canvas);
}
/**
* draws the view's content to a bitmap. code based on :
* http://nadavfima.com/android-snippet-inflate-a-layout-draw-to-a-bitmap/
*/
public static Bitmap drawToBitmap(final View viewToDrawFrom, final int width, final int height) {
// Create a new bitmap and a new canvas using that bitmap
final Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(bmp);
viewToDrawFrom.setDrawingCacheEnabled(true);
// Supply measurements
viewToDrawFrom.measure(MeasureSpec.makeMeasureSpec(canvas.getWidth(), MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(canvas.getHeight(), MeasureSpec.EXACTLY));
// Apply the measures so the layout would resize before drawing.
viewToDrawFrom.layout(0, 0, viewToDrawFrom.getMeasuredWidth(), viewToDrawFrom.getMeasuredHeight());
// and now the bmp object will actually contain the requested layout
canvas.drawBitmap(viewToDrawFrom.getDrawingCache(), 0, 0, new Paint());
return bmp;
}
private void drawContent() {
if (getMeasuredWidth() <= 0 || getMeasuredHeight() <= 0)
return;
final Bitmap bitmap = drawToBitmap(mMainContainer, getMeasuredWidth(), getMeasuredHeight());
final RoundedCornersDrawable drawable = new RoundedCornersDrawable(getResources(), bitmap, 15);
setImageDrawable(drawable);
}
}
편집: "라운드 코너스 레이아웃" 라이브러리를 기반으로 한 좋은 대안을 찾았습니다.반올림할 모든 레이아웃 클래스에 사용할 클래스를 지정합니다.
//based on https://github.com/JcMinarro/RoundKornerLayouts
class CanvasRounder(cornerRadius: Float, cornerStrokeColor: Int = 0, cornerStrokeWidth: Float = 0F) {
private val path = android.graphics.Path()
private lateinit var rectF: RectF
private var strokePaint: Paint?
var cornerRadius: Float = cornerRadius
set(value) {
field = value
resetPath()
}
init {
if (cornerStrokeWidth <= 0)
strokePaint = null
else {
strokePaint = Paint()
strokePaint!!.style = Paint.Style.STROKE
strokePaint!!.isAntiAlias = true
strokePaint!!.color = cornerStrokeColor
strokePaint!!.strokeWidth = cornerStrokeWidth
}
}
fun round(canvas: Canvas, drawFunction: (Canvas) -> Unit) {
val save = canvas.save()
canvas.clipPath(path)
drawFunction(canvas)
if (strokePaint != null)
canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, strokePaint)
canvas.restoreToCount(save)
}
fun updateSize(currentWidth: Int, currentHeight: Int) {
rectF = android.graphics.RectF(0f, 0f, currentWidth.toFloat(), currentHeight.toFloat())
resetPath()
}
private fun resetPath() {
path.reset()
path.addRoundRect(rectF, cornerRadius, cornerRadius, Path.Direction.CW)
path.close()
}
}
그런 다음 각 사용자 지정 레이아웃 클래스에서 다음과 유사한 코드를 추가합니다.
class RoundedConstraintLayout : ConstraintLayout {
private lateinit var canvasRounder: CanvasRounder
constructor(context: Context) : super(context) {
init(context, null, 0)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs, 0)
}
constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle) {
init(context, attrs, defStyle)
}
private fun init(context: Context, attrs: AttributeSet?, defStyle: Int) {
val array = context.obtainStyledAttributes(attrs, R.styleable.RoundedCornersView, 0, 0)
val cornerRadius = array.getDimension(R.styleable.RoundedCornersView_corner_radius, 0f)
val cornerStrokeColor = array.getColor(R.styleable.RoundedCornersView_corner_stroke_color, 0)
val cornerStrokeWidth = array.getDimension(R.styleable.RoundedCornersView_corner_stroke_width, 0f)
array.recycle()
canvasRounder = CanvasRounder(cornerRadius,cornerStrokeColor,cornerStrokeWidth)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
setLayerType(FrameLayout.LAYER_TYPE_SOFTWARE, null)
}
}
override fun onSizeChanged(currentWidth: Int, currentHeight: Int, oldWidth: Int, oldheight: Int) {
super.onSizeChanged(currentWidth, currentHeight, oldWidth, oldheight)
canvasRounder.updateSize(currentWidth, currentHeight)
}
override fun draw(canvas: Canvas) = canvasRounder.round(canvas) { super.draw(canvas) }
override fun dispatchDraw(canvas: Canvas) = canvasRounder.round(canvas) { super.dispatchDraw(canvas) }
}
속성을 지원하려면 라이브러리에 기록된 대로 사용합니다.
<resources>
<declare-styleable name="RoundedCornersView">
<attr name="corner_radius" format="dimension"/>
<attr name="corner_stroke_width" format="dimension"/>
<attr name="corner_stroke_color" format="color"/>
</declare-styleable>
</resources>
대부분의 사용자에게 더 쉬울 수 있는 또 다른 방법은 MaterialCardView를 사용하여 둥근 모서리, 스트로크 색상 및 너비, 표고를 사용자 지정할 수 있습니다.
예:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"
tools:context=".MainActivity">
<com.google.android.material.card.MaterialCardView
android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center"
app:cardCornerRadius="8dp" app:cardElevation="8dp" app:strokeColor="#f00" app:strokeWidth="2dp">
<ImageView
android:layout_width="match_parent" android:layout_height="match_parent" android:background="#0f0"/>
</com.google.android.material.card.MaterialCardView>
</FrameLayout>
그리고 그 결과:
사용하는 경우 스트로크 가장자리에 약간의 아티팩트 문제가 있습니다(내용의 일부 픽셀이 남아 있음).확대해 보면 알 수 있습니다.저는 여기서 이 문제에 대해 보고했습니다.
EDIT: IDE에 고정되어 있는 것처럼 보이지만 IDE에는 없습니다.여기 보고됨.
1단계: drawables 폴더에 bg_layout.xml을 정의하고 아래 코드를 넣습니다.
2단계: bg_layout.xml을 레이아웃에 배경으로 추가합니다.
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="#EEEEEE"/> <!--your desired colour for solid-->
<stroke
android:width="3dp"
android:color="#EEEEEE" /> <!--your desired colour for border-->
<corners
android:radius="50dp"/> <!--shape rounded value-->
</shape>
배치를 반올림하려면 CardView를 사용하는 것이 가장 좋습니다. CardView는 디자인을 아름답게 만들기 위한 많은 기능을 제공합니다.
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:text="@string/quote_code"
android:textColor="@color/white"
android:textSize="@dimen/text_head_size" />
</LinearLayout>
</android.support.v7.widget.CardView>
이 card_view:cardCornerRadius="5dp"를 사용하여 반경을 변경할 수 있습니다.
해보세요...
1.드로잉 가능한 xml(custom_drawable.xml)을 만듭니다.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#FFFFFF" />
<stroke
android:width="2dp"
android:color="#FF785C" />
<corners android:radius="10dp" />
</shape>
2.뷰 배경 추가
android:background="@drawable/custom_layout"
재료 구성요소 라이브러리를 사용하여 사용자 정의 모양을 그릴 수 있습니다.
선형 레이아웃을 xml 레이아웃에 배치하기만 하면 됩니다.
<LinearLayout
android:id="@+id/linear_rounded"
android:layout_width="match_parent"
android:layout_height="wrap_content"
..>
<!-- content ..... -->
</LinearLayout>
그런 다음 코드에서 다음을 적용할 수 있습니다.ShapeAppearanceModel
다음과 같은 것:
float radius = getResources().getDimension(R.dimen.default_corner_radius);
LinearLayout linearLayout= findViewById(R.id.linear_rounded);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
.toBuilder()
.setAllCorners(CornerFamily.ROUNDED,radius)
.build();
MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
//Fill the LinearLayout with your color
shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.secondaryLightColor));
ViewCompat.setBackground(linearLayout,shapeDrawable);
참고: 재료 구성 요소 라이브러리의 버전 1.1.0이 필요합니다.
가장 좋고 간단한 방법은 레이아웃에서 card_background를 그릴 수 있도록 하는 것입니다.이것은 또한 구글의 재료 설계 지침을 따릅니다.이를 선형 레이아웃에 포함하기만 하면 됩니다.
android:background="@drawable/card_background"
그리기 가능한 디렉토리에 추가하고 이름을 card_background.xml로 지정합니다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#BDBDBD"/>
<corners android:radius="5dp"/>
</shape>
</item>
<item
android:left="0dp"
android:right="0dp"
android:top="0dp"
android:bottom="2dp">
<shape android:shape="rectangle">
<solid android:color="#ffffff"/>
<corners android:radius="5dp"/>
</shape>
</item>
</layer-list>
코너 반경을 프로그래밍 방식으로 설정하는 기능
static void setCornerRadius(GradientDrawable drawable, float topLeft,
float topRight, float bottomRight, float bottomLeft) {
drawable.setCornerRadii(new float[] { topLeft, topLeft, topRight, topRight,
bottomRight, bottomRight, bottomLeft, bottomLeft });
}
static void setCornerRadius(GradientDrawable drawable, float radius) {
drawable.setCornerRadius(radius);
}
사용.
GradientDrawable gradientDrawable = new GradientDrawable();
gradientDrawable.setColor(Color.GREEN);
setCornerRadius(gradientDrawable, 20f);
//or setCornerRadius(gradientDrawable, 20f, 40f, 60f, 80f);
view.setBackground(gradientDrawable);
CardView를 사용하여 레이아웃의 모서리를 둥글게 만듭니다.카드 뷰에 대해 card_view:cardCornerRadius="5dp"를 사용하여 배치 모서리를 둥글게 만듭니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="15dp"
android:weightSum="1">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:text="@string/quote_code"
android:textColor="@color/white"
android:textSize="@dimen/text_head_size" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".7"
android:text="@string/quote_details"
android:textColor="@color/white"
android:textSize="@dimen/text_head_size" />
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
더 나은 방법은 다음과 같습니다.
background_activity.xml
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="fill">
<color android:color="@color/black"/>
</item>
<item>
<shape android:gravity="fill">
<solid android:color="@color/white"/>
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
</item>
</layer-list>
이는 API 21 아래에서도 작동하며 다음과 같은 기능을 제공합니다.
이 조금 더더 잘 , 당이조더노더력서해나통있할은면요다사세의제다하용음향, 을만약이를신금요▁if세사▁then,▁use하용다▁more음을 사용하세요.android.support.v7.widget.CardView
그것과 함께cardCornerRadius
set 성및집(합속및▁attribute))elevation
다리탓으에 대한 .0dp
카드View)로 함께 제공되는 드롭 섀도우를 제거합니다.또한 이것은 API 수준에서 15까지 작동할 것입니다.
가능한 , "xml"을 .layout_background.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@color/your_colour" />
<stroke
android:width="2dp"
android:color="@color/your_colour" />
<corners android:radius="10dp" />
</shape>
<--width, color, radius should be as per your requirement-->
그리고 나서, 이것을 당신의 안에 추가하세요.layout.xml
android:background="@drawable/layout_background"
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="3dip" android:color="#B1BCBE" />
<corners android:radius="10dip"/>
<padding android:left="3dip" android:top="3dip" android:right="3dip" android:bottom="3dip" />
</shape>
@David, 이미지 크기에 상관없이 테두리를 볼 수 있도록 스트로크와 동일한 값을 패딩하십시오.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="@dimen/_10sdp"
android:shape="rectangle">
<solid android:color="@color/header" />
<corners
android:bottomLeftRadius="@dimen/_5sdp"
android:bottomRightRadius="@dimen/_5sdp"
android:topLeftRadius="@dimen/_5sdp"
android:topRightRadius="@dimen/_5sdp" />
제가 @gauravsapiens에 제 의견이 포함된 답변을 가져왔는데, 이는 매개변수가 어떤 영향을 미칠지에 대한 합리적인 이해를 제공하기 위해서입니다.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Background color -->
<solid android:color="@color/white" />
<!-- Stroke around the background, width and color -->
<stroke android:width="4dp" android:color="@color/drop_shadow"/>
<!-- The corners of the shape -->
<corners android:radius="4dp"/>
<!-- Padding for the background, e.g the Text inside a TextView will be
located differently -->
<padding android:left="10dp" android:right="10dp"
android:bottom="10dp" android:top="10dp" />
</shape>
모서리를 둥글게 처리하는 모양을 만들고자 하는 경우 패딩과 스트로크를 제거하면 됩니다.솔리드도 제거하면 사실상 투명한 배경에 둥근 모서리가 만들어집니다.
게으르기 위해 저는 그 아래에 둥근 모서리가 있는 단단한 흰색 배경의 모양을 만들었습니다 - 즐기세요!:)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Background color -->
<solid android:color="@color/white" />
<!-- The corners of the shape -->
<corners android:radius="4dp"/>
</shape>
파티에 조금 늦었지만, 이것은 여전히 문제입니다.그래서 xml에서 모서리를 잘라낼 수 있는 데이터 바인딩을 위한 OutlineProviders와 BindingAdapters를 작성했습니다.
참고: 윤곽이 있는 클리핑은 모서리의 크기를 다르게 할 수 없습니다!
저는 이 스택 오버플로 게시물에 코드로 자세한 응답을 작성했습니다.
코드 + 바인딩 어댑터로 얻을 수 있는 것:
<androidx.constraintlayout.widget.ConstraintLayout
clipRadius="@{@dimen/some_radius}"
clipBottomLeft="@{@dimen/some_radius}"
clipBottomRight="@{@dimen/some_radius}"
clipTopLeft="@{@dimen/some_radius}"
clipTopRight="@{@dimen/some_radius}"
clipCircle="@{@bool/clip}"
이렇게 하면 뷰를 원, 모든 모서리를 둥글게 잘라내고 한 방향(왼쪽, 위, 오른쪽, 아래)으로 둥근 모서리를 잘라내거나 단일 모서리를 잘라낼 수 있습니다.
만약 여러분이 원하는 것이 단지 둥근 직사각형이라면, 긴 이야기를 짧게 자르세요.
float r=8;
ShapeDrawable shape =
new ShapeDrawable (new RoundRectShape(new float[] { r, r, r, r, r, r, r, r },null,null));
shape.getPaint().setColor(Color.RED);
view.setBackground(shape);
- 처음 두 개의 플로트는 왼쪽 상단 모서리에 대한 것입니다(나머지 쌍은 시계 방향으로 일치함).
이 둥근 앱 모음 및 둥근 하단 앱 모음과 같은 사용자 정의 보기를 사용하여 이 작업을 수행할 수 있습니다.여기서path
에 익숙함clipPath
캔버스
언급URL : https://stackoverflow.com/questions/16161448/how-to-make-layout-with-rounded-corners
'programing' 카테고리의 다른 글
테이블에서 다른 테이블의 행당 여러 행 가져오기 (0) | 2023.06.29 |
---|---|
iAsyncCursor는 mongodbc# 드라이버와의 반복에 어떻게 사용됩니까? (0) | 2023.06.29 |
@MAPSTRUCT.소스 매개 변수에 "패키지"라는 속성이 없습니다. (0) | 2023.06.29 |
pip 패키지에 대한 종속성 트리를 보여줄 수 있는 방법이 있습니까? (0) | 2023.06.29 |
모바일 장치에서 로컬 호스트 웹 사이트 보기 (0) | 2023.06.29 |