作者tac0wu (他口)
看板AndroidDev
标题Re: [问题] imagebutton 缩放及位置配置
时间Mon Nov 4 20:24:30 2013
※ 引述《SeungHsu (Seung)》之铭言:
: 标题: [问题] imagebutton 缩放及位置配置
: 时间: Tue Oct 29 10:33:35 2013
:
: 小弟有一问题想请问在场各位高手!
:
: 目前开发一个程式的主画面,在这个
: 主画面有数个imagebutton,而这数个
: imagebutton与background的图有关联
: 。
:
: 原本是用4寸萤幕下去排imagebutton
: 的位置,但只要换成其他萤幕尺寸的
: 模拟装置imagebutton就和background
: 却搭不太上。
: (各个imagebutton的相对应位子不会跑掉)
:
: 之前有问过老师,老师说要用scale
: ,但并没有多讲有关於scale的内容,
: 上述的问题用了scale可以解决吗!?
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.131.115.171
: → jack19900510:可以这麽说 要算出背景图被缩放了多少 10/29 11:14
: → jack19900510:进而算出 button 的长宽与 margin 10/29 11:14
: → lovelycateye:你要不要考虑把你的需求画成图给大家看 10/29 11:29
: → lovelycateye:搞不好用 9patch 或是其他方式就好,用算的很累的 10/29 11:30
: → ted66:解决不了,要准确还是把背景图切割,9PATCH边比较适合纯色 10/30 11:03
: → ted66:切割再用TABLE去处理的话应该会准很多 10/30 11:03
: → SeungHsu:刚刚大概用小画家画了一下我示意图 箭头是imagebotton 10/30 13:07
: → SeungHsu:附上图网址 http://ppt.cc/zbj0 10/30 13:08
: → SeungHsu:蓝虚线表示button的相对距离,真正实作的bottn约有15个 10/30 13:10
: → SeungHsu:如果是那麽多imagebutton要对应同个背景 哪种法适合呢? 10/30 13:11
: → SeungHsu:感谢各位热心回覆,希望能找到适合这种数量的方法啊! 10/30 13:12
: 推 tac0wu:你的图好有fu 10/30 20:46
: → tac0wu:你的背景图会变形吗 还是等比例放大缩小然後置中? 10/30 20:48
: 推 tac0wu:如果是default background行为的话 10/30 20:50
: → tac0wu:你首先要知道 背景图片被拉之後的长和宽(这里建议用全萤幕) 10/30 20:51
: → tac0wu:省的花力气还要去算status bar的高度 10/30 20:52
: 推 tac0wu:突然觉得要打好多字 Orz 10/30 20:56
: 推 tac0wu:握建议你要对得准的话 要记住的是箭头的尖端 在你原图的位 10/30 20:59
: → tac0wu:置 然後用那位置向量做跟背景图片相同的变形 之後倒推回你 10/30 21:01
: → tac0wu:image 所该放置的位置 我想到最简单的方法大概就是这样 10/30 21:01
: → SeungHsu:背景图不会变形,是固定的会像您说的等比例放大缩小置中 11/01 15:42
: → SeungHsu:然後开发时是使用fullscreen的方式 所以不会有bar的问题 11/01 15:43
: → SeungHsu:可知道背景图片被拉之後的长和宽,有那麽多不同的装置, 11/01 15:44
: → SeungHsu:还是可以以4寸为基准,放大或缩小多少下去做向量呢? 11/01 15:47
你要处理的状况有两个case
一个就是背景图的形状"比例"比萤幕胖
另一个就是背景图的形状"比例"比萤幕高
我用第一个case举例
首先你的背景图假设为600 X 1200 你在400 X 500的地方需要一个箭头的顶点
你得知目前装置萤幕是500 X 1300 所以你的背景图会绘制在中间上下留空白
1.算出你的背景图最左上角在萤幕的位置
背景图被缩小成原本的 500/600 = 5/6
背景图目前的size 500 X (1200*(5/6)) => 500 X 1000
所以背景图的左上角位置在萤幕的 0 X (1300-1000)/2 => 0 X 150
2.将原本400 X 500 的向量对到新的位置
150+ (400*(5/6)) X 500 * (5/6) => 483 X 417
3.在来就是放箭头图片 如果不随背景图片放大缩小就很简单
就是刚刚上面算出新的点 再减掉你箭头图片左上角 到箭头顶点的向量
就是你该放的位置
p.s请锁方向 不要自找麻烦
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.158.95
1F:推 SeungHsu:感谢T大,正在努力摸索中!! 谢谢您给方向啊!! 11/11 11:51