2016-05-02 6 views
0

私はマップを持っていて、ポインタとしてそれにButtonを入れたいと思っています。異なるディスプレイで同じように見える画像上にボタンを置く

 RelativeLayout.LayoutParams param =(RelativeLayout.LayoutParams)(getActivity().findViewById(id[i])).getLayoutParams(); 
     param.setMargins((int)(xFactor[i]*displySize.x),(int)(yFactor[i]*displySize.y),0,0); 

を私は別の表示サイズを使用する場合、これらのメソッドButton Sの全てに自分の位置を変更します。ここで私はpxまたはdplayout_marginを設定したり、progremmatically display_sizeの割合にしている私の

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/karte" 
    android:background="@drawable/my_map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageButton 
     android:id="@+id/btnSP1" 
     android:layout_width="@dimen/pinpoint_size" 
     android:layout_height="@dimen/pinpoint_size" 
     android:scaleType="fitXY" 
     android:background="@drawable/pinpoint" 
     android:tag="001" 
     android:layout_marginLeft="50px" 
     android:layout_marginTop="90px" 
     android:onClick="spClick"/> 
    <ImageButton 
     android:id="@+id/btnSP2" 
     android:layout_width="@dimen/pinpoint_size" 
     android:layout_height="@dimen/pinpoint_size" 
     android:scaleType="fitXY" 
     android:background="@drawable/pinpoint" 
     android:tag="002" 
     android:layout_marginLeft="100px" 
     android:layout_marginTop="250px" 
     android:onClick="spClick"/> 
    </RelativeLayout> 

です。
ボタンの位置を表示サイズに依存しないように修正する方法はありますか。

+0

を助けることを願っています

RelativeLayout.LayoutParams param =(RelativeLayout.LayoutParams(getActivity().findViewById(id[i])).getLayoutParams(); param.setMargins(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,(int)(xFactor[i]*displySize.x), context.getResources().getDisplayMetrics()),TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,(int)(yFactor[i]*displySize.y), context.getResources().getDisplayMetrics()),0,0); 


は、マーカ点の位置に基づいて動的に設定しました –

答えて

1

通常、DPまたはDIPは、アンドロイドの濃度に依存しないピクセルを意味します。したがって、位置をオブジェクトに属性付けると、明らかに固定されます。
あなたのコードから、あなたはこの方法でDPであなたの値の平等を得なければならないことがわかります。私はそれはあなたに