2016-08-04 4 views
0

私のアプリでは、テキストビューのバックグラウンドとして4つの空白の八角形を使用したかったのです。相対レイアウトとマージンを使って、正しい場所にテキストビューを配置しました。問題は、私が働いていたデバイス(1020x1980)以外のデバイスでは、テキストビューが中央から外れていることです。ですから、これを修正する唯一の方法は、dimens.xmlファイルのデバイス(ldpi、mdpi、hdpi、xhdpiなど)によって異なるマージン値を設定することです。テキストビューのバックグラウンドアイコンアセットにテキストビューを配置する

enter image description here

enter image description here

コード。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center_vertical" 
android:background="@drawable/list_background" 
android:minHeight="?android:attr/listPreferredItemHeight"> 


<!--Info for the octagon icons--> 
<TextView 
    android:layout_width="83dp" 
    android:layout_height="44dp" 
    android:textColor="@color/orange_a400" 
    android:layout_marginLeft="53dp" 
    android:layout_marginTop="25dp" 


    android:textStyle="bold" 
    android:textSize="13sp" 
    android:text="Aug 24" 

    android:id="@+id/date" /> 

<TextView 
    android:layout_width="45dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="62dp" 
    android:layout_marginLeft="15dp" 

    android:textColor="@color/orange_a400" 
    android:textStyle="bold" 
    android:gravity="center" 
    android:text="105" 
    android:textSize="20sp" 
    android:id="@+id/sessionID" 

    /> 

<TextView 
    android:layout_width="45dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="24dp" 
    android:layout_toRightOf="@+id/sessionID" 
    android:layout_alignTop="@id/sessionID" 
    android:textColor="@color/orange_a400" 
    android:gravity="center" 
    android:textStyle="bold" 
    android:text="185" 
    android:textSize="20sp" 
    android:id="@+id/user_weight" 
    /> 
+0

レイアウトコンテナになるように各八角形を設計し、その中に 'TextView'を配置します。 – Shaishav

+2

これは本当に反パターンです。独自の八角形の背景を持つ4つのtextViewを使用し、相対的な配置を使用する必要があります。 –

+2

@Shaishav ...別のレイアウト?どうして?レイアウトを入れ子にすることは、パフォーマンスに悪い**です。 TextViewsは独自の背景を持つことができます。余分なレイアウトの必要はありません... –

答えて

0

使用トップと左の位置にこれを行うには、配置の順序は、私が最初のTextViewを追加し、位置を設定すると言うことを意味して画像を追加する位置

ANDROID - positioning views programatically

を設定し、これを参照して、動的にも位置を設定します
関連する問題