XML로 사각형을 그릴 수 있습니까?


118

XML로 사각형을 그릴 수 있는지 궁금합니다. 프로그래밍 방식으로 drawRect 메서드를 사용하여 그리는 방법을 알고 있습니다.


1
... XML 수단 모두 아무것도, 즉 아무 말도
ShinTakezou

XML을 사용하는 목적은 무엇입니까? drawRect는 일반적으로 사용자 정의보기를 만드는 데 사용되는 Canvas에서 작동합니다.
noob

나는 @Creator와 완전히 동의하며 조금 더 복잡한 것이 아니라면 Canvas를 거의 사용하지 않습니다. XML 버전을 사용하면 속성이 한 위치에 정의되므로 특정 UI 요소에 대한 전체 앱의 배경을 쉽게 변경할 수 있습니다.
Graham Smith

@GrahamSmith 나는 그가 이것으로 무엇을하고 싶었는지 알 수 있도록 목적을 물었다. 캔버스를 거의 사용하지 않을 수도 있지만 게임을 개발하는 데 여러 번 사용했습니다. 여기에 동의하거나 동의하지 않는 것이 없습니다.
noob

@creator 죄송합니다. 댓글의 어조를 "왜 귀찮게 하시겠어요?"라고 잘못 해석 한 것 같습니다. 죄송합니다.
Graham Smith

답변:


229

예, 할 수 있으며 여기에 제가 이전에 만든 것이 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
    <stroke android:width="2dp" android:color="#ff207d94" />
    <padding android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp" />
    <corners android:radius="5dp" />
    <solid android:color="#ffffffff" />
</shape>

드로어 블 폴더 내에 새 XML 파일을 만들고 위 코드를 추가 한 다음 rectangle.xml로 저장할 수 있습니다.

레이아웃 내에서 사용하려면 android:background속성을 새로운 드로어 블 모양으로 설정합니다 . 정의한 모양에는 크기가 없으므로 레이아웃에 정의 된보기의 크기를 사용합니다.

그래서 모두 합치면 :

<View
    android:id="@+id/myRectangleView"
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:background="@drawable/rectangle"/>

드디어; 이 사각형을 모든 뷰의 배경으로 설정할 수 있지만 ImageView의 경우 android:src. 즉, 사각형을 ListViews, TextViews 등의 배경으로 사용할 수 있습니다.


1
누군가 우리가 <View?
kobihudson

나는 당신이 그것을 위해 ID를 추가 할 수 있다고 생각
모세 Aprico

프로그래밍 방식으로 획 색상을 변경하는 방법은 무엇입니까?
Zahidul

34

rectangle.xmlDrawable 모양을 사용하여 만들기 Drawable 폴더에 넣으십시오 .

<?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/transparent"/>
   <corners android:radius="12px"/> 
   <stroke  android:width="2dip" android:color="#000000"/>  
</shape>

에 넣어 ImageView

<ImageView 
android:id="@+id/rectimage" 
android:layout_height="150dp" 
android:layout_width="150dp" 
android:src="@drawable/rectangle">
</ImageView>

이것이 당신을 도울 수 있기를 바랍니다.


21

빠르고 더러운 방법 :

<View
    android:id="@+id/colored_bar"
    android:layout_width="48dp"
    android:layout_height="3dp"
    android:background="@color/bar_red" />

8

이 시도

                <TableRow
                    android:layout_width="match_parent"
                    android:layout_marginTop="5dp"
                    android:layout_height="wrap_content">

                    <View
                        android:layout_width="15dp"
                        android:layout_height="15dp"
                        android:background="#3fe1fa" />

                    <TextView
                        android:textSize="12dp"
                        android:paddingLeft="10dp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="1700 Market Street"
                        android:id="@+id/textView8" />
                </TableRow>

산출

여기에 이미지 설명 입력


2

이 코드 사용

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:radius="0.1dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />

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

    <stroke
        android:width="2dp"
        android:color="#25aaff" />

</shape>

0

드로어 블에 리소스 파일 생성

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#3b5998" />
<cornersandroid:radius="15dp"/>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.