長方形をXMLで描画できますか?


118

長方形をXMLで描くことができるのかしら。プログラムでdrawRectメソッドを使用して描画する方法を知っています。


1
XMLはすべてを意味し、つまり何も意味しないと言います...
ShinTakezou

XMLを使用する目的は何ですか?drawRectはCanvasで機能します。Canvasは通常、カスタムビューの作成に使用されます。
noob

@Creatorに完全に同意します。もう少し複雑なものでない限り、Canvasを使用することはほとんどありません。XMLバージョンでは、属性が1つの場所で定義されているため、特定のUI要素のアプリ全体の背景を簡単に変更できます。
グラハムスミス

@GrahamSmith目的を尋ねたので、彼がこれで何をしたいのかを知ることができます。Canvasはめったに使用しないかもしれませんが、ゲームの開発に何度も使用しました。ここで同意または反対することは何もありません。
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を作成するAndroidレイアウトから色を設定できるようにするには、どうすればよいでしょうか?
kobihudson

IDを追加できないと思います
モーゼスアプリコ

プログラムでストロークの色を変更するには?
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.