2016-05-02 54 views
0

我有一张地图,想放一些Button S于它的指针。这里是我的把它看起来一样在不同的显示图像上的按钮

<?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> 

我在display_size的百分比来设置layout_marginpxdp或progremmatically:

 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换个自己的位置,当我使用不同显示尺寸。
是否有任何想法如何修复按钮进行独立显示尺寸的立场。

+0

设置动态基础上的标记点位置 –

回答

1

通常DP或DIP意味着Android的密度独立像素,所以如果你属性的位置到目标显然这将是固定的。
从你的代码,我看到的是你应该得到平等的价值观在DP与这种方式。

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); 


我希望这将有助于你

相关问题