⑴ PC端與移動端是2套代碼開發的,如何做適配和跳轉
嗯,,讓我想想
需要在APP的訪問中加上UA代理,這樣可以使用js判斷。
if(userAgent==="APP"){
跳轉或什麼都不做-APP-必須寫在移動端前
}
elseif((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|WindowsPhone)/i))){
跳轉或什麼都不做-是移動
}else{
跳轉或什麼都不做-是PC
}
想要Android應用適應不同尺寸的屏幕,思路如下:
不同的layout
Android手機屏幕大小不一,有480x320, 640x360, 800x480,讓app適應不同屏幕,需要在res目錄下創建不同的layout文件夾,比如layout-640x360,layout-800x480,所有的layout文件在編譯之後都會寫入R.java里,而系統會根據屏幕的大小自己選擇合適的layout進行使用。
hdpi、mdpi、ldpi
在之前的版本中,只有一個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多解析度。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)
(3)drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
更正:應該是對應不同density 的圖片
在開發程序時為了兼容不同平台不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。
屏幕方向:
橫屏豎屏自動切換:
可以在res目錄下建立layout-port-800x600和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局文件,這樣在手機屏幕方向變化的時候系統會自動調用相應的布局文件,避免一種布局文件無法滿足兩種屏幕顯示的問題。
不同解析度橫屏豎屏自動切換:
以800x600為例 :
可以在res目錄下建立layout-port-800x600和layout-land-800x600兩個目錄
不切換:
以下步驟是網上流傳的,不過我自己之前是通過圖形化界面實現這個配置,算是殊途同歸,有空我會把圖片貼上來。
還要說明一點:每個activity都有這個屬性screenOrientation,每個activity都需要設置,可以設置為豎屏(portrait),也可以設置為無重力感應(nosensor)。
要讓程序界面保持一個方向,不隨手機方向轉動而變化的處理辦法:
在AndroidManifest.xml裡面配置一下就可以了。
加入這一行android:screenOrientation="landscape"。
例如(landscape是橫向,portrait是縱向):
以下是JAVA代碼:
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activityandroid:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activityandroid:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activityandroid:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdkandroid:minSdkVersion="3"/>
</manifest>
另外,android中每次屏幕的切換動會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
有的程序適合從豎屏切換到橫屏,或者反過來,這個時候怎麼辦呢?可以在配置Activity的地方進行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。
而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時候進行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重寫Activity的 onConfigurationChanged方法。實現方式如下,不需要做太多的內容:
@Override
(ConfigurationnewConfig){
super.onConfigurationChanged(newConfig);
if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){
//landdonothingisok
}elseif(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){
//portdonothingisok
}
}
寫一個支持多分辨的程序,基於1.6開發的,建立了三個資源文件夾drawable-hdpi drawable-mdpi drawable-ldpi,裡面分別存放72*72 48*48 36*36的icon圖標文件。當我在G1(1.5的系統)上測試時,圖標應該自適應為48*48才對啊,但實際顯示的是36*36。怎麼才能讓其自適應 48*48的icon圖標呢 ?
解決辦法 drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夾。
⑶ 如何做到 一套代碼 安卓iOS都能適配
Android適配是一個大坑,你可能早有耳聞。但是別人告訴你坑,然後你也說坑,肯定是無法令人信服的。我們做學問,不能光知其然不知所以然,適配問題到底有多坑,為什麼坑,以及如何從坑裡爬出來,就是我們今天要探討的話題了。
這還得從Android的開放性說起。不同於iOS,Android的設備廠商可以生產任意屏幕大小的手機、平板和TV,谷歌對此並沒有做任何限制。直接後果就是設備越來越多,大大小小的屏幕尺寸也是層出不窮。另一方面,程序員都有一個夢想,就是一套代碼走天下,誰都不想把美好青春浪費在應付各種奇葩的屏幕適配上去。所以說程序員一談適配色變,尤其是Android的適配,簡直比產品經理改需求還要痛苦。這里有兩張圖,你可以看下當前形勢多麼嚴峻。
⑷ pc網站有了,怎麼做手機適應的網站
一、PC網站自動適配手機網頁的7個步驟
一般來說,移動適配主要通過底層的web技術開發手段來完成,下面馬海祥將通過移動適配技術的角度來告訴你通過7個步驟來完成一個PC網站向移動設備的跳躍!
1、允許網頁寬度自動調整
「自適應網頁設計」到底是怎麼做到的?其實並不難。
首先,在網頁代碼的頭部,加入一行viewport元標簽,viewport是網頁默認的寬度和高度,上面這行代碼的意思是,網頁寬度默認等於屏幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0,即網頁初始大小占屏幕面積的100%。
所有主流瀏覽器都支持這個設置,包括IE9,對於那些老式瀏覽器(主要是IE6、7、8),需要使用css3-mediaqueries.js。
2、不使用絕對寬度
由於網頁會根據屏幕寬度調整布局,所以不能使用絕對寬度的布局,也不能使用具有絕對寬度的元素,這一條非常重要。
具體說,CSS代碼不能指定像素寬度:width:xxxpx;
只能指定百分比寬度:width:xx%;或者width:auto;
3、相對大小的字體
字體也不能使用絕對大小(px),而只能使用相對大小(em)。
body{
font:normal100%Helvetica,Arial,sans-serif;
}
上面的代碼指定,字體大小是頁面默認大小的100%,即16像素。
h1{
font-size:1.5em;
}
然後,h1的大小是默認大小的1.5倍,即24像素(24/16=1.5)。
small{
font-size:0.875em;
}
small元素的大小是默認大小的0.875倍,即14像素(14/16=0.875)。
4、流動布局(fluidgrid)
「流動布局」的含義是,各個區塊的位置都是浮動的,不是固定不變的。
.main{
float:right;
width:70%;
}
.leftBar{
float:left;
width:25%;
}
float的好處是,如果寬度太小,放不下兩個元襲改素,後面的元素會自動滾動到前面元素的下方,不會在水平方向overflow(溢出),避免了水平滾動條的出現。
另外,絕對定位(position:absolute)的使用,也要非常小心。
5、選擇載入CSS
「自適應網頁設計」的核心就是CSS3引入的MediaQuery模塊,它的意思就是,自動探測屏幕扒禪亮寬度,然後載入相應的CSS文件。
media=」screenand(max-device-width:400px)」
href=」tinyScreen.css」/>
上面的代碼意思是,如果屏幕寬度小於400像素(max-device-width:400px),就載入tinyScreen.css文件。
media=」screenand(min-width:400px)and(max-device-width:600px)」
href=」smallScreen.css」/>
如果屏幕寬度在400像素到600像素之間,則載入smallScreen.css文件。
除了用html標簽載入CSS文件,還可以在現有CSS文件中載入。
6、CSS的@media規則
同一個CSS文件中,也可以根據不同的屏幕解析度,選擇應用不春寬同的CSS規則。
@mediascreenand(max-device-width:400px){
.column{
float:none;
width:auto;
}
⑸ html代碼 插入圖片 手機上自動適配大小 這個應該怎麼寫
在網頁的抄<head>中增加以上這句話,可以讓網頁的寬度自動適應手機屏幕的寬度: [html] view plain <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5,