14

マップの下にある 2 つのボックスのように、見栄えの良い丸みを帯びたコーナーをマップに与えたいと考えています。フラグメントにはバックグラウンド プロパティがないため、マップ フラグメント自体では実行できません。レイアウト内にマップを設定し、背景を丸みを帯びた形状に設定しても役に立ちませんでした。結果は次のとおりです。

http://i.stack.imgur.com/LJhP1.jpg

マップをマージすることはできますが、これによりマップが小さくなるため、避けたいと思います。

編集: @Ryan これは新しい結果 #2 です:

http://i.stack.imgur.com/69D59.jpg

これは悪くはないと思いますが、他のボックスの隅にさえ近づきませんが、もう少し作業をすれば、通常の画像エディターを持っていないだけでどこかに近づけることができます。しかし、今でも気になることの1つは、「場所」テキストビューとそれ自体のマップとの分離です。パッチを別の方法でペイントして、距離ができるようにすることはできますか? これが私がやった方法です:

http://i.stack.imgur.com/1Qx66.png

さて、私は最終的にこれを理解しました:

http://i.stack.imgur.com/bY4N5.jpg

これは私がパッチに使用したものです:

ここに画像の説明を入力

ありがとう。

4

7 に答える 7

8

私はこれを試していませんが、mapView / mapFragment の上に角が丸く、中央が透明なビューを配置します。

つまり、mapFragment と角丸ビューを両方とも FrameLayout に配置して FrameLayout に配置し、角丸ビューの中央を透明にします。

さらに明確にするために、次のようなレイアウトでそれを行うことができます:-

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:id="@+id/mapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/rounded_background"
    android:orientation="vertical" >
</LinearLayout>

</FrameLayout>

rounded_background は、角が丸く、中央が透明な 9 パッチです。例えば

rounded_background.9.png

それが役立つことを願って、

ライアン

于 2013-01-22T22:39:16.970 に答える
0

API 21 (Lollipop) 以降のみをターゲットにしようとしている場合


これが最も簡単な方法です。

parentView.setClipToOutline(true);

結果

ここに画像の説明を入力

于 2016-03-07T19:26:14.380 に答える