2013-04-08 128 views
0

我有一個使用登錄屏幕的應用程序。在那個屏幕上,我有de公司的標誌。在QVGA屏幕上調整圖像大小

首先我做了一個佈局文件夾和一個可繪製的文件夾。我測試過,一切正常。

然後,我添加了4個佈局文件夾(正常,大,小和xlarge)和4個可繪製文件夾(hdpi,ldpi,mdpi,xhdpi)。 我剛剛將我的logo.png和main_layout.xml複製到每個文件夾(這是錯誤的,但只是爲了測試)。 當然,當我在每個不同屏幕尺寸的模擬器上測試應用程序時,它會顯示錯誤位置或變形的標誌圖像(有時大或小,有時位置不正確等)。這是對的,因爲我沒有創建不同的PNG文件,我沒有適應不同大小的佈局。

因此,下一步就是與設計區進行交談,並詢問每個密度的4個png文件並檢查「4個佈局」。

一旦我有4個PNG文件和佈局固定,我再次測試應用程序使用4模擬器(一個用於普通屏幕,其他用於大屏幕,其他用於大屏幕和一個用於小屏幕)。而且還不能像我想要的那樣工作。

在某些情況下,logo.png顯示我想要的更大。在其他人顯示更小。 我不明白我必須做什麼。 我使用wrap_content,我創建了4個drawable文件夾(hdpi,ldpi,mdpi,xhdpi),我有4個不同尺寸的logo.png文件。

但是,當我在QVGA模擬器上看到圖像時,它會顯示一幅巨大的圖像。

如果不同的佈局是針對屏幕尺寸,而不同的PNG是針對不同的密度,我需要做些什麼來使用小圖片或更大的圖片(PNG)?

感謝和抱歉,我的英語

回答

1

這種類型的差的問題通常是非常特殊的情況下。

但一般的做法是有一個且只有一個佈局。 此佈局內的任何維度值都放入/ values /文件夾中的dimens.xml文件中。 創建4個.png(ldpi,mdpi,hdpi,xhdpi)並確保其比例正確! (仔細檢查Android開發網站上看到正確的比例。

你在此設置測試後,IF有沒有對齊,您將創建該屏幕尺寸(小,大,等一個dimens.xml東西)和只添加你真的想改變尺寸。

不要在測試之前添加的所有維度或全部佈局。通常是簡單的開始與基本和根據需要添加更多的資源。

0

我有一個類似的問題,這可能會幫助你,也可能不會幫助你。我試圖讀取一定大小的mjpeg流,但它不能完全適合我調整大小的窗口f要麼。這個問題歸結爲許多設備的像素密度並不完全等於OS報告的事實。例如,操作系統可能會報告mdpi爲160 dpi,但設備的實際dpi爲164.因此,如果您希望使用1個非常大的* .png並在運行時調整其大小,請不要使用「標準」縮放因素(即1,2,4,等等),而使用

float factor = getResources().getDisplayMetrics().density; 

//To get width/height of the View 
int width = view.getWidth(); //a fixed width would be preferred over this 
int realwidth = (int) Math.round(width/factor); 

注意大小調整是自動完成的,但有時如果你讓操作系統處理它你沒有得到想要的結果。

這不完全是你問的,但如果你決定去只有一個drawable的路線,這將有希望避免一些頭痛。

相關問題