web-dev-qa-db-ja.com

丸みを帯びたエッジが2つしかない長方形を作成する

すべてのエッジが丸みを帯びた長方形の形状を作成できます。しかし、私が望んでいるのは、丸みを帯びたエッジが2つだけの長方形です。これは可能ですか?

私は本質的に、丸みを帯びたエッジを持つバブルのように見えるListViewを一緒にハッキングしています。 2つの上端が丸みを帯びたヘッダーと、2つの下端が丸みを帯びたフッターを追加しようとしています。

29
Andrew

Android:radius属性をAndroid:topRightRadiusおよびAndroid:topLeftRadiusに変更しました

17
Andrew
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
<solid Android:color="#FFFFFF"/>
<corners 
Android:bottomRightRadius="0dp"
Android:bottomLeftRadius="0dp"
Android:topLeftRadius="15dp"
Android:topRightRadius="15dp"/>
</shape>

このコードは機能しているだけなので(?)Android version 2.2。 documentation を参照すると、コードは次のようになります。

<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
<solid Android:color="#FFFFFF"/>
<corners 
Android:radius="2dp"
Android:bottomRightRadius="0dp"
Android:bottomLeftRadius="0dp"
Android:topLeftRadius="15dp"
Android:topRightRadius="15dp"/>
</shape>
43
marnaish

これは役に立つかもしれません。

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
 <solid Android:color="#FFFFFF"/>
    <corners
     Android:bottomRightRadius="0dp"
     Android:bottomLeftRadius="0dp"
  Android:topLeftRadius="15dp"
  Android:topRightRadius="15dp"/>
</shape>
19
Ganesh Bhat

(あなたの質問を理解するために)最善のことは、9patchイメージを作成し、それを背景として使用することです-必要に応じてストレッチするように定義し、XMLレベルで設定してコード作業を節約することができます

2
Asahi
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
<solid Android:color="#FFFFFF"/>
<corners 
Android:bottomRightRadius="0dp"
Android:bottomLeftRadius="0dp"
Android:topLeftRadius="15dp"
Android:topRightRadius="15dp"/>
</shape>

上記のコードを使用してください

1
Ganesh Bhat

丸みを帯びた長方形を描画してから、丸みを帯びた長方形の角の半径と同じサイズの2つの追加の長方形を描画して、丸くしたくない角に配置します。

そのため、たとえば、半径15ピクセルの丸みを帯びた長方形と、丸みを帯びてはならない丸みを帯びた長方形の角に配置された2つの通常の長方形15 x 15ピクセルがあります。

編集:質問を読み直して、リストビューの上部と下部に簡単な9パッチ画像を作成した方が良いかもしれません。ピクセル化せずに、任意のサイズに拡大します。ただし、事前にイメージを作成する必要があります。また、長方形の形状を使用して作業を行うと、後でコードで簡単に変更できます。ただし、9パッチの方法は、ハックの少ないです。

0
kcoppock