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