❶ 手機上的網頁界面忽然變得好大看不全圖片怎麼辦
1、屏幕相關概念
1.1解析度
是指屏幕上有橫豎各有多少個像素
1.2屏幕尺寸
指的是手機實際的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸
android將屏幕大小分為四個級別(small,normal,large,and extra large)。
1.3屏幕密度
每英寸像素數
手機可以有相同的解析度,但屏幕尺寸可以不相同,
Diagonal pixel表示對角線的像素值(=),DPI=933/3.7=252
android將實際的屏幕密度分為四個通用尺寸(low,medium,high,and extra high)
一般情況下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi
對於屏幕來說,dpi越大,屏幕的精細度越高,屏幕看起來就越清楚
1.4密度無關的像素(Density-independent pixel——dip)
dip是一種虛擬的像素單位
dip和具體像素值的對應公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)
當你定義應用的布局的UI時應該使用dp單位,確保UI在不同的屏幕上正確顯示。
手機屏幕分類和像素密度的對應關系如表1所示
手機尺寸分布情況(http://developer.android.com/resources/dashboard/screens.html)如圖所示,
目前主要是以解析度為800*480和854*480的手機用戶居多
從以上的屏幕尺寸分布情況上看,其實手機只要考慮3-4.5寸之間密度為1和1.5的手機
2、android多屏幕支持機制
Android的支持多屏幕機制即用為當前設備屏幕提供一種合適的方式來共同管理並解析應用資源。
Android平台中支持一系列你所提供的指定大小(size-specific),指定密度(density-specific)的合適資源。
指定大小(size-specific)的合適資源是指small, normal, large, and xlarge。
指定密度(density-specific)的合適資源,是指ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high).
Android有個自動匹配機制去選擇對應的布局和圖片資源
1)界面布局方面
根據物理尺寸的大小准備5套布局:
layout(放一些通用布局xml文件,比如界面頂部和底部的布局,不會隨著屏幕大小變化,類似windos窗口的title bar),
layout-small(屏幕尺寸小於3英寸左右的布局),
layout-normal(屏幕尺寸小於4.5英寸左右),
layout-large(4英寸-7英寸之間),
layout-xlarge(7-10英寸之間)
2)圖片資源方面
需要根據dpi值准備5套圖片資源:
drawable:主要放置xml配置文件或者對解析度要求較低的圖片
drawalbe-ldpi:低解析度的圖片,如QVGA (240x320)
drawable-mdpi:中等解析度的圖片,如HVGA (320x480)
drawable-hdpi:高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
drawable-xhdpi:至少960dp x 720dp
Android有個自動匹配機制去選擇對應的布局和圖片資源。
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
在開發程序時為了兼容不同平台不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。
3、AndroidManifest.xml 配置
android從1.6和更高,Google為了方便開發者對於各種解析度機型的移植而增加了自動適配的功能
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
3.1是否支持多種不同密度的屏幕
android:anyDensity=["true" | "false"]
如果android:anyDensity="true"
指應用程序支持不同密度,會根據屏幕的解析度自動去匹配。
如果android:anyDensity="false"
應用程序支持不同密度,系統自動縮放圖片尺寸和這個圖片的坐標。具體解釋一下系統是如何自動縮放資源的。
例如我們在hdpi,mdpi,ldpi文件夾下擁有同一種資源,那麼應用也不會自動地去相應文件夾下尋找資源,這種情況都是出現在高密度,以及低密度的手機上,比如說一部240×320像素的手機,
如果設置android:anyDensity="false",Android系統會將240 x 320(低密度)轉換為 320×480(中密度),這樣的話,應用就會在小密度手機上載入mdpi文件中的資源。
3.2是否支持大屏幕
android:largeScreens=["true" | "false"]
如果在聲明不支持的大屏幕,而這個屏幕尺寸是larger的話,系統使用尺寸為("normal")和密度為("medium)顯示,
不過會出現一層黑色的背景。
3.3是否支持小屏幕
android:smallScreens=["true" | "false"]
如果在聲明不支持的小屏幕,而當前屏幕尺寸是smaller的話,系統也使用尺寸為("normal")和密度為("medium)顯示
如果應用程序能在小屏幕上正確縮放(最低是small尺寸或最小寬度320dp),那就不需要用到本屬性。否則,就應該為最小屏幕寬度標識符設置本屬性
來匹配應用程序所需的最小尺寸。
4、Android提供3種方式處理屏幕自適應
4.1預縮放的資源(基於尺寸和密度去尋找圖片)
1)如果找到相應的尺寸和密度,則利用這些圖片進行無縮放顯示。
2)如果沒法找到相應的尺寸,而找到密度,則認為該圖片尺寸為 "medium",利用縮放顯示這個圖片。
3)如果都無法匹配,則使用默認圖片進行縮放顯示。默認圖片默認標配 "medium" (160)。
4.2自動縮放的像素尺寸和坐標(密度兼容)
1)如果應用程序不支持不同密度android:anyDensity="false",系統自動縮放圖片尺寸和這個圖片的坐標。
2)對於預縮放的資源,當android:anyDensity="false",也不生效。
3)android:anyDensity="false",只對密度兼容起作用,尺寸兼容沒效果
4.3兼容更大的屏幕和尺寸(尺寸兼容)
1)對於你在聲明不支持的大屏幕,而這個屏幕尺寸是normal的話,系統使用尺寸為 ("normal")和密度為("medium)顯示。
2.)對於你在聲明不支持的大屏幕,而這個屏幕尺寸是larger的話,系統同樣使用尺寸為("normal")和密度為("medium)顯示,
不過會出現一層黑色的背景。
5、Android系統自動適配技巧
Android系統採用下面兩種方法來實現應用的自動適配:
1)布局文件中定義長度的時候,最好使用wrap_content,fill_parent, 或者dp 進行描述,這樣可以保證在屏幕上面展示的時候有合適的大小
2)為不同屏幕密度的手機,提供不同的點陣圖資源,可以使得界面清晰無縮放。
對應bitmap 資源來說,自動的縮放有時會造成放大縮小後的圖像變得模糊不清,這是就需要應用為不同屏幕密度配置提供不同的資源:為高密度的屏幕提供高清晰度的圖像等。
3)不要使用AbsoluteLayout
4)像素單位都使用DIP,文本單位使用SP
6、在代碼中獲取屏幕像素、屏幕密度
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕寬度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
7、 一般多解析度處理方法及其缺點
7.1 圖片縮放
基
於當前屏幕的精度,平台自動載入任何未經縮放的限定尺寸和精度的圖片。如果圖片不匹配,平台會載入默認資源並且在放大或者縮小之後可以滿足當前界面的顯示
要求。例如,當前為高精度屏幕,平台會載入高精度資源(如HelloAndroid中drawable-hdpi
中的點陣圖資源),如果沒有,平台會將中精度資源縮放至高精度,導致圖片顯示不清晰。
7.2 自動定義像素尺寸和位置
如
果程序不支持多種精度屏幕,平台會自動定義像素絕對位置和尺寸值等,這樣就能保證元素能和精度160
的屏幕上一樣能顯示出同樣尺寸的效果。例如,要讓WVGA 高精度屏幕和傳統的HVGA
屏幕一樣顯示同樣尺寸的圖片,當程序不支持時,系統會對程序慌稱屏幕解析度為320×480,在(10,10)到(100,100)的區域內繪制圖形完成
之後,系統會將圖形放大到(15,15)到(150,150)的屏幕顯示區域。
7.3 兼容更大尺寸的屏幕
當前屏幕超過程序所支持屏幕的上限時,定義supportsscreens元素,這樣超出顯示的基準線時,平台在此顯示黑色的背景圖。例如,WVGA 中精度屏幕上,如程序不支持這樣的大屏幕,系統會謊稱是一個320×480 的,多餘的顯示區域會被填充成黑色。
7.4 採用OpenGL 動態繪制圖片
Android 底層提供了OpenGL 的介面和方法,可以動態繪制圖片,但是這種方式對不熟悉計算機圖形學的開發者來講是一個很大的挑戰。一般開發游戲,採用OpenGL 方式。
7.5 多個apk 文件
Symbian
和傳統的J2ME
就是採用這種方式,為一款應用提供多個解析度版本,用戶根據自己的需求下載安裝相應的可執行文件。針對每一種屏幕單獨開發應用程序不失為一種好方法,但是
目前Google Market 對一個應用程序多個解析度版本的支持還不完善,開發者還是需要盡可能使用一個apk 文件適應多個解析度。
❷ 手機uc瀏覽器打開主頁面之後的圖標變大了,知道怎麼縮小的親們幫幫忙謝謝!
雙指按在屏幕兩邊,往中間縮,或者關機重啟
❸ 為什麼下載到手機里的圖片屏幕會變大好幾倍.看圖片的時候還好好的 ,一變成屏幕就擴大到最大了。
你用圖片瀏覽器看的時候 系統會根據屏幕解析度來自動調整圖片解析度
不知道你用的是什麼手機系統 安卓的在設置桌面的時候會出現調整框 可以選擇圖片的全部或局部
如果你的不能選取 查一下手機屏幕解析度多少 有電腦上將圖片改成相應大小
❹ 怎麼修改網頁圖片的大小,就是圖片的質量跟手機一樣大就行,我要拷貝網頁圖片太大用
你好,
請不要復制粘貼,這樣圖像不清晰。
你可以在網頁上看到喜歡的圖後,長按選擇出現選項,點擊保存圖片下載到手機,然後在相冊找到剛剛保存的圖片,就可以把喜歡的部分裁剪,之後就跟手機屏幕一樣啦。一般手機相冊都會自帶圖片編輯功能的
這是最簡單的辦法,復雜的可以使用一些圖片處理軟體。比如PS,CDR,美圖秀秀等。。。
希望被採納,並幫助帶您,謝謝。
❺ 我的手機屏幕很大,但是上網時網頁上的圖片很小,而且圖片本來就很大的,請問如何解決
這個時根本沒有辦法的。可以在網路設置中把圖像的清晰度設置高些。
如果沒有這個選項,那麼就沒有辦法了。
因為圖像的數據時非常多的,手機的處理能力時很有限的,手機不能向電腦那樣處理很強的數據。每個圖像就時數學上的一個矩陣,圖像越清晰越大,那麼矩陣就越復雜,手機根本就處理不了,於其不能顯示,不如降低解析度和尺寸把它顯示出來,這也是手機設計者變成時設計死的,可能您的手機的主板上的處理晶元能里並不強,只是屏幕比較大。這就是為什麼早期的電腦不能顯示彩色的原因之一。
希望對你有用。
❻ 手機網頁中的圖片根據屏幕大小自適應 怎麼弄
根據你要做的產品圖或banner圖,外面的div要設置寬度、高度。裡面的圖片再設置 width:100% height:auto,
❼ html5手機頁面背景圖片自適應大小問題
1,輸入position:fixed;top:0;left:0;將整個div固定在屏幕的頂部和左側。
❽ 手機網頁設計圖片顯示偏大是怎麼回事設計大神們幫幫忙!!!
各種手機和pad的解析度都是不一樣的,所以你要考慮周全一點,是用相對的%還是絕對的px
❾ 網頁調整了style.css 以後,手機網站,圖片顯示超出了屏幕。怎麼改為適應屏幕大小
這位網友你好,想要網頁寬度自適應,你需要把網頁元素寬度設置為百分比,還要在網頁頭部加上代碼:
圖片自適應,且不超過原始大小,需要設置最大寬度,代碼如下:
img{
width:100%;
max-width:100%;}
❿ 我用html5 做了個手機網站 如何讓圖片本身100%放大
html5頁面加入這段
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=2,user-scalable=no"/>
maximum-scale=2 表示頁面最大放大2倍,這樣你只要雙擊圖片就可以實現放大了,如果是要js來實現的話 那就得寫拖動插件了。 原理:先改變圖片那個div的寬度為2倍然後定義那個div為絕對定位,這個div可以拖動(需要js來監聽處理對應的函數)
所以簡單的做還是就用瀏覽器自帶的放大功能吧