2010-02-17 51 views
0

情況
Flex項目作爲投影儀導出,顯示全屏。該項目有一個背景和幾個點,每個點代表一個「位置」。這些位置是從XML文件中提取的,並且它們的位置以百分比形式設置。以像素爲單位的位置按照應用程序的寬度和高度進行計算(它的工作原理應該如此)。點正確放置。位置對象在不同分辨率下的問題

背景是分辨率爲1280 * 1024的JPG。此時,背景設置爲Canvas,其中backgroundSize = auto。這將圖像放在中間而不會伸展。將結果拉伸成醜陋的像素化圖像,並將比例分開。

問題
當我們查看2米不同的分辨率(1 = 1280 * 1024; 2 = 1024 * 768)的項目,該點是在良好的位置,背景圖像是尖銳的。但是 - 由於背景具有與1相同的分辨率,背景在分辨率2中沒有完全顯示(因爲它沒有被拉伸,因此邏輯結果爲

這就是爲什麼我試圖拉伸背景的結果:
Dots placed in the correct way http://i733.photobucket.com/albums/ww336/winkelman66/example1.jpg

在一個較小的/其他分辨率:??
alt text http://i733.photobucket.com/albums/ww336/winkelman66/example2.jpg

解決方案
我應該怎麼解決這個問題,我想的總是有背景集中在底部,保持原樣。這不是一個選項,因爲缺少圖像的細節/部分。將醜陋的像素化圖像拉伸成不成比例的結果。
我知道伸展可能是解決分辨率問題而不丟失圖像部分的唯一選擇,但是如何解決點不在良好位置的問題(如圖2所示)。

回答

0

大的問題,簡單的解決方案的差(加工後小時)。 在我們的計算中,我們只是忘了一件簡單的事情:反映位置中點的大小(寬度/高度)...

因此,如果在計算百分比像素位置時遇到同樣的問題, t忘記在您的計算中包含(viewToBePositioned.width/2) :-)

1

不知道,如果這是你的意思到底是什麼,但我給它一個鏡頭:P

  1. 獲取原始背景大小
  2. 獲取拉伸背景
  3. 鈣的大小的寬度和高度差
  4. 反映上的點位置