0

我有一张我的 android 应用程序背景的图片和一个文本,我想使用 RelativeLayout 将我的文本设置在图片的特定点,但问题是在不同分辨率的不同手机中,文本和图片的大小都发生了变化以及位置text 不再是具体位置了,怎么办?

4

2 回答 2

0

您可以在计算位置时使用百分比,当调整图像大小时,点相对于其高度/宽度的位置应该相同。

于 2013-08-15T18:57:01.063 回答
0

这是基于假设字体大小为30的代码块,它的位置从中心(50%left,50%top)开始,

TextView t=(TextView)findViewById(R.id.txt);
    RelativeLayout.LayoutParams lp=(RelativeLayout.LayoutParams) t.getLayoutParams();
    Display D;
    D=getWindowManager().getDefaultDisplay();
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    float multiplier=(float)((float)dm.densityDpi/(160));
    lp.leftMargin=(int)(D.getWidth()*.5);
    lp.topMargin=(int)(D.getWidth()*.5);
    t.setTextSize(30*multiplier);
    t.setLayoutParams(lp);

对于 160dpi 设备,乘数将为 1,并且会根据其他设备密度而变化,文本位置将始终从屏幕中心开始。

于 2013-08-15T19:46:05.437 回答