programing

Android에서 텍스트 보기를 위한 둥근 모서리

muds 2023. 10. 3. 11:37
반응형

Android에서 텍스트 보기를 위한 둥근 모서리

텍스트 뷰가 있는데 모서리가 둥근 모양이면 좋겠습니다.사용할 수 있다는 것은 이미 알고 있습니다.android:background="@drawable/somefile". 저의 경우 이 태그는 이미 포함되어 있어서 다시 사용할 수 없습니다. 예를 들어,android:background="@drawable/mydialogbox"이미 백그라운드에서 이미지를 만들기 위해 존재합니다.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="top"
    android:background="@drawable/mydialogbox"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textview_name"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    </LinearLayout>

</RelativeLayout>

그래서 내가 원할때textview(textview_name)또한 라운드 코너를 통해 이를 실현할 수 있는 방법을 확인할 수 있습니다.

  1. 만들다rounded_corner.xml에서drawable폴더에 다음 내용을 추가합니다.

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >         
       <stroke
           android:width="1dp"
           android:color="@color/common_border_color" />
    
       <solid android:color="#ffffff" />
    
       <padding
            android:left="1dp"
            android:right="1dp"
            android:bottom="1dp"
            android:top="1dp" />
    
       <corners android:radius="5dp" />
    </shape>
    
  2. 그림 그리기 가능을 에 설정TextView배경 속성은 다음과 같습니다.

    android:background="@drawable/rounded_corner"
    

저는 이것이 당신에게 도움이 되기를 바랍니다.

게다가radius, 둥근 모서리처럼 둥글게 만들 수 있는 부동산이 있습니다.topRightRadius,topLeftRadius,bottomRightRadius,bottomLeftRadius

TextView와 함께red모서리와 경계를 맞춥니다.gray배경

bg_rounded.xml(그림줄 폴더)

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="10dp"
        android:color="#f00" />

    <solid android:color="#aaa" />

    <corners
        android:radius="5dp"
        android:topRightRadius="100dp" />
</shape>

텍스트 보기

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_rounded"
    android:text="Text"
    android:padding="20dp"
    android:layout_margin="10dp"
    />

결과

enter image description here

Material Components Library를 사용하면 을 사용할 수 있습니다.

의 경우:

    <TextView
        android:id="@+id/textview"
        ../>

프로그래밍 방식으로 A를 적용할 수 있습니다.MaterialShapeDrawable:

float radius = getResources().getDimension(R.dimen.corner_radius);

TextView textView = findViewById(R.id.textview);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED,radius)
        .build();

MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
ViewCompat.setBackground(textView,shapeDrawable);

enter image description here

배경색과 테두리를 변경하려면 다음을 적용하기만 하면 됩니다.

shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.....));
shapeDrawable.setStroke(2.0f, ContextCompat.getColor(this,R.color....));

최상위 보기에 이미 Android:background 속성이 설정되어 있으므로 다음을 사용할 수 있습니다.<layer-list>(link) 이전 배경과 새로운 둥근 모서리 배경을 모두 결합한 새로운 XML 그리기 표를 만듭니다.

각각<item>목록의 요소는 다음 위에 그려지므로 목록의 마지막 항목은 맨 위에 있는 항목입니다.

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/mydialogbox" />
    </item>
    <item>
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/common_border_color" />

            <solid android:color="#ffffff" />

            <padding
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />

            <corners android:radius="5dp" />
        </shape>
    </item>
</layer-list>

두 단계가 있습니다.

1) 그리기 가능한 폴더에 이 파일을 만듭니다. -rounded_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
         <corners android:radius="10dp" />  // set radius of corner
         <stroke android:width="2dp" android:color="#ff3478" /> // set color and width of border
         <solid android:color="#FFFFFF" /> // inner bgcolor
</shape>

2) 이 파일을 사용자의 파일로 설정합니다.TextView배경 재산으로서

android:background="@drawable/rounded_corner"

이 그리기 파일은 단추 또는 텍스트 편집에서도 사용할 수 있습니다.

그릴 수 있는 폴더 아래에 xml gradient.xml 파일을 만듭니다.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"  >
            <corners android:radius="50dip" />
            <stroke android:width="1dip" android:color="#667162" />
            <gradient android:angle="-90" android:startColor="#ffffff" android:endColor="#ffffff" />
        </shape>
    </item>
</selector>

텍스트 보기에 추가합니다.

android:background="@drawable/gradient"

제공된 직사각형 모양을 다음과 같이 사용할 수 있습니다(구배가 없는 경우).

drawable/rounded_rectangle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="5dp" />
    <stroke android:width="1dp" android:color="#ff0000" />
    <solid android:color="#00ff00" />
</shape>

그런 다음 텍스트 보기에서:

android:background="@drawable/rounded_rectangle"

물론 치수와 색상을 사용자 정의할 수 있습니다.

  1. 그리기 가능 폴더에서 마우스 오른쪽 단추를 누른 후 새 파일 만들기
  2. 사용자에 따라 파일 이름을 지정하고 확장자를 .xml로 추가합니다.
  3. 파일에 다음 코드 추가
  <?xml version="1.0" encoding="utf-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
      <corners android:radius="5dp" />
      <stroke android:width="1dp"  />
      <solid android:color="#1e90ff" />
  </shape>
  1. 둥근 모서리를 원하는 위치에 선을 추가합니다.android:background="@drawable/corner"
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#ffffff"/>

        </shape>
    </item>
</layer-list>

TextView를 MaterialCardView 안에 넣습니다View:

    <com.google.android.material.card.MaterialCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="25dp"
        >
        <com.google.android.material.textview.MaterialTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/emergency_sms_template"
            android:padding="6dp"
            android:textSize="11sp"
            />
    </com.google.android.material.card.MaterialCardView>

SVG를 사용하여 모서리를 반올림하고 ImageView에 로드할 수 있으며 ContractLayout을 사용하여 TextView에 ImageView를 가져올 수 있습니다.

둥근 이미지 보기와 둥근 텍스트 보기에 사용했습니다.

해당 보기의 배경으로 둥근 모서리 이미지를 간단히 사용하는 것

그리고 사용자 지정 이미지를 그릴 수 있는 폴더에 저장하는 것도 잊지 마십시오.

android:background="@drawable/my_custom_image"

언급URL : https://stackoverflow.com/questions/18781902/rounded-corner-for-textview-in-android

반응형