0

だから私は私のレイアウトの境界線をコミック/漫画のようなバブルのようなものに変更したい. 私はこのように境界線を変更できることを知っています:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape     android:shape="rectangle" >
            <corners  android:radius="5dip" />
            <stroke  android:width="2dip" android:color="@color/white"/>
        </shape>
    </item>
</layer-list>

しかし、先のとがった部分(三角形のように見える部分)をどのように行うことができますか。タップしたものを指すためにそれを使用する必要があります。私はそれが奇妙で面白いと思うことを知っていますが、試してみる必要があります.

4

3 に答える 3

2

いいえ、それはできません。ストロークコーナーを提供できますが、複雑な曲線(三角形)は提供できません。カスタムシェイプの場合は、viewとonDraw()を使用できます。

Path path = new Path();
path.moveTo(160.0f, 240.0f);
path.lineTo(140.0f, 200.0f);
path.addArc(new RectF(140, 180, 180, 220), -180, 180);
path.lineTo(160.0f, 240.0f);
path.close(); 

このパスは、を使用してキャンバスに描画されます。

canvas.drawPath(path、paint);

ここに画像の説明を入力してください

9Patchコンセプトのあるイメージを作成する方が良いでしょう。ここに画像の説明を入力してください

このツールは、9Patchイメージを簡単に作成するのに役立ちますhttp://android.elex.pe.kr/a-better-9-patch-tool

于 2012-04-27T09:16:13.857 に答える
1

最も簡単なオプションは、吹き出しのように見える 9 パッチの画像を作成することでしょう。これにより、バブルは伸びたり変に見えたりすることなく、その中のテキストのサイズまで拡大できます。

それ以外の場合は、直接描画するのは少し複雑になる可能性があります。長方形の下部に三角形のようなオブジェクトを XML で描画するか、カスタム コンポーネントを作成して描画メソッドを上書きする必要があります。はるかに複雑です。

9-patch 画像は、Buttons や TeXtFields などの多くの Android GUI コンポーネントで使用されます。基本的には、9-patch 画像を作成し、それをコンポーネントの背景として設定するだけです。これは XML で行うことができます。

9 パッチ イメージを作成する例はたくさんあります。Android SDK には、任意のイメージに対して 9 パッチを作成する 9 パッチ ツールが付属しています。9パッチツールについては、このリンクを参照してください... http://developer.android.com/guide/developing/tools/draw9patch.html

于 2012-04-25T05:44:53.247 に答える
0

すべての項目が吹き出しで表示される ListView を表示するサンプル プロジェクトを作成しました。ご自由にダウンロードしてご利用ください。ちなみに、灰色の泥は偶然ではありません。これは、元のOmniGraffleソース アートのドロップ シャドウです。他のライターが示唆したように、9 パッチのドローアブルを使用します。 スクリーンショット

于 2012-04-27T13:08:49.547 に答える