作者runescape1 (littledot)
看板AndroidDev
标题Re: [问题] 支援萤幕大小
时间Tue Aug 16 17:41:15 2011
1F:推 fake01:我是用绝对座标来排版,因为要排介面会有线性排列08/16 12:21
2F:→ fake01:的状况,没办法解决吗? 因为用绝对座标比较好排XD08/16 12:22
方法就是把px转成dp.
在
http://developer.android.com/guide/practices/screens_support.html
中的Converting dp units to pixel units有提到
先用 float scale = getResource().getDisplayMetrics().density; 取得萤幕density
再将结果套用到公式 int px = (int) (dp * scale + 0.5f);
上面是dp->px, px->dp就麻烦你自己改了
3F:→ ian90911:我用dp结果在手机看可以 在模拟器会挤到旁边...08/16 12:27
"可以"是指甚麽情况呢~?
4F:→ jaw109:我都用mm :P08/16 13:23
mm跟in也是一种"绝对单位"
小心不同萤幕宽度可能会造成误差喔~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.199.154
5F:推 nvidia: TypedValue.applyDimension 08/16 18:07
6F:推 fake01:谢谢你 我试试看 :) 08/16 18:36
8F:→ ian90911:手机上看 排的刚好 可是模拟器看 旁边会有很多空间 08/16 21:06
9F:→ runescape1:@ian,你的viewgroup是用fill_parent还是dp? 08/16 22:16
10F:→ ian90911:我在xml里设定dp 08/16 22:24
11F:→ runescape1:那就原因所在,vg应该要用fill/match_parent,而不是用dp 08/16 22:59
12F:→ runescape1:fill/match_parent或wrap_content.试试看效果 08/16 23:00
13F:推 fake01:请问用AbsoluteLayout 在JAVA内再把px->dp 有办法使用吗 08/17 03:17
14F:→ fake01:我自己尝试之後不行耶 08/17 03:17
15F:→ runescape1:要使用viewgroup.layoutparams来做设定 08/17 07:15