Android UI에서 둥근 사각형을 그리는 방법은 무엇입니까?
Android UI에서 둥근 사각형을 그려야합니다. 에 대해 동일한 모서리가 둥근 직사각형을 갖는 TextView
하고하는 EditText
것도 도움이 될 것입니다.
레이아웃 xml에서 다음을 수행하십시오.
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:endColor="@color/something"
android:centerColor="@color/something_else"
android:startColor="@color/something_else_still"
android:angle="270" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
android : radius를 변경하면 모서리의 "반올림"양을 변경할 수 있습니다.
나는 이것이 당신이 정확히 필요하다고 생각합니다.
둥근 사각형을 만드는 drawable (xml) 파일입니다. round_rect_shape.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#ffffff" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
여기 레이아웃 파일 : my_layout.xml
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/round_rect_shape"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Something text"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ff0000" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<requestFocus />
</EditText>
</LinearLayout>
-> 위 코드에서 배경이있는 LinearLayout (둥근 사각형을 만드는 것이 핵심 역할입니다). 따라서 LinearLayout에 TextView, EditText ...와 같은 모든 뷰를 배치하여 배경을 모두의 둥근 사각형으로 볼 수 있습니다.
In monodroid
, you can do like this for rounded rectangle, and then keeping this as a parent class, editbox
and other layout features can be added.
class CustomeView : TextView
{
public CustomeView (Context context, IAttributeSet ) : base (context, attrs)
{
}
public CustomeView(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle)
{
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
Paint p = new Paint();
p.Color = Color.White;
canvas.DrawColor(Color.DarkOrange);
Rect rect = new Rect(0,0,3,3);
RectF rectF = new RectF(rect);
canvas.DrawRoundRect( rectF, 1,1, p);
}
}
}
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<solid android:color="@color/colorAccent" />
<corners
android:bottomLeftRadius="500dp"
android:bottomRightRadius="500dp"
android:topLeftRadius="500dp"
android:topRightRadius="500dp" />
</shape>
Now, in which element you want to use this shape just add: android:background="@drawable/custom_round_ui_shape"
Create a new XML in drawable named "custom_round_ui_shape"
Right_click on the drawable and create new layout xml file in the name of for example button_background.xml. then copy and paste the following code. You can change it according your need.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="14dp" />
<solid android:color="@color/colorButton" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
<size
android:width="120dp"
android:height="40dp" />
</shape>
Now you can use it.
<Button
android:background="@drawable/button_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Use CardView for Round Rectangle. CardView give more functionality like cardCornerRadius, cardBackgroundColor, cardElevation & many more. CardView make UI more suitable then Custom Round Rectangle drawable.
참고URL : https://stackoverflow.com/questions/5618402/how-to-draw-rounded-rectangle-in-android-ui
'programing tip' 카테고리의 다른 글
Capistrano-이전 릴리즈 정리 (0) | 2020.07.08 |
---|---|
C ++ 16 진 문자열을 부호있는 정수로 변환 (0) | 2020.07.08 |
명령 행을 통해 Android Studio 앱 빌드 (0) | 2020.07.07 |
파이썬에서 나열하는 사전 키 값에 대한 반복 (0) | 2020.07.07 |
C # async / await와 동일한 Java? (0) | 2020.07.07 |