A. android studio 怎麼做屏幕適配
不能說是Android Studio怎麼做屏幕適配,而應該是Android怎麼做屏幕適配
屏幕適配需要多方面來配合才能實現
1、針對手機、平板做不同的XML布局設計 ,如:layout、layout-large
2、解析度不同的,對於圖片也需要不同,讓美工給你做合適的圖,如:mipmap-hdpi、mipmap-xhdpi
3、對針不同設置,字體大小設計也不同,如:values-hdpi、values-hdpi
以上這幾種配合使用,基本可以達到屏幕適配的目的,這個需要使用不同設置進行測試,然後根據情況進行調整
B. 什麼是文字適配,如何進行文字適配
通過對尺寸單位、圖片、文字、布局這四種資源進行合理設計及規劃,在布局時合理利用各種類型資源,讓布局擁有適應能力,能在各種設備下保持良好的展示效果。
屏幕尺寸指屏幕的對角線的長度,mdpi、hdpi、xdpi、xxdpi、代表不同的密度設備。
1.分別創建mdpi、hdpi、xdpi、xxdpi的模擬器
2.觀察尺寸、解析度、dpi分別是多少。
3.在res下新建valus-960*540、valus-1184*720文件夾,分別創建名為dimens.xml的文件
4.為每個dimens.xml創建一個<dimen>標簽,name為app_width,值分別為100dp和800dp。
5.在acyivity_main.xml中創建一個Button。
6.分別觀察Button的變化。
在 Android 工程的 res 目錄下有 values 目錄,這個是默認的目錄,同時為了適配不同尺寸手機我們可以創建一個 values- 1280x720 的文件夾,同時將 dimens.xml 文件拷貝到該目錄下。
在 values-1280x720 目錄中的 dimens.xml 中定義同樣的尺寸名稱,但是使用不同的尺寸,如下圖所示。
當我們在布局文件中使用長或者寬度單位時,比如下圖所示,應該使用@dimen/width 來靈活的定義寬度。
在 values-1280x720 中,中間的是大寫字母 X 的小寫形式 x,而不是加減乘除的乘號。如果我們在values-1280x720 中放置了 dimens 常量,一定記得也將該常量的對應值在 values 目錄下的 dimens.xml 中放一份,因為該文件是默認配置, 當用戶的手機不是 1280*720 的情況下系統應用使用的是默認 values 目錄中的 dimens.xml。
C. android中相同解析度不同尺寸的手機怎麼適配
Android應用如何適配不同解析度的手機
主要分三塊考慮
1 )界面配置
根據不同的解析度,創建手機界面文件
例子:
在res下創建 layout-800x480
layout-480x320
並在各自不同解析度的文件夾下創建界面文件
2)圖片配置
不同的解析度,界面的長寬比不一致,需要不同規格的圖片
在drawable-hdpi,drawable-ldpi,drawable-mdpi 中放不同解析度的圖片
注:為了減小整個應用程序安裝包大小,選用最高解析度適配,特殊界面圖片特殊處理
3)動態實現的界面,樣式的設定
不同解析度,界面的字體大小,字體等需要不同的樣式,且需要動態生成的情況下,
需要把不同解析度的配置信息保存到應用中。
例子:
在RES里創建 values-480x320 values-800x400 value-1280x720
並在創建的文件夾中分別創建dimens.xml
<dimen name="Text_size">30px</dimen>
在程序中直接調用R.dimen.Text_size
int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);
注:實際應用發現,字體大小適配時
比如只適配了如下屏幕字體
values-480x320 values-800x480 value-1280x720
當出現手機屏幕解析度為 854x480時會自動找最大字體適配 (value-1280x720)
總結:如果字體800x480以上沒有適配,手機自動按最大解析度適配.
D. Android 字體大小怎麼自適應不同解析度
字體大小一般是sp,控制項大小採用dp, android 手機一般牽涉到適配的問題,基本有幾個原則:
默認配置一般都是根據目前主流的解析度來設置,比如現在都是4.7寸以上,720p,1080p這2個,可以默認為720p。這樣就可以覆蓋大多數的手機了。
剩餘的小部分就只能根據values增加後綴 比如 -480*800增加配置文件來適配480*800解析度的手機,來適配不同的解析度了
在代碼裡面獲取屏幕解析度,動態修改字體大小
E. android value文件怎樣適配不同解析度
我會保持關注這個問題的, 應該是在value 中設置dim 的一個文件 在這個文件中寫有尺寸,文件中寫著需要改變大小的控制項的名字 在相應解析度下的大小 , 多反編譯幾個APK 看看別人的xml 怎麼寫的。反編譯 只要xml 很簡單 直接改名字zip 解壓就好了
F. android資源文件有哪些適配的後綴名
第一種後綴:sw<N>dp,如layout-sw600dp, values-sw600dp
這里的sw代表smallwidth的意思,當你所有屏幕的最小寬度都大於600dp時,屏幕就會自動到帶sw600dp後綴的資源文件里去尋找相關資源文件,這里的最小寬度是指屏幕寬高的較小值,每個屏幕都是固定的,不會隨著屏幕橫向縱向改變而改變。
第二種後綴w<N>dp 如layout-w600dp, values-w600dp
帶這樣後綴的資源文件的資源文件制定了屏幕寬度的大於Ndp的情況下使用該資源文件,但它和sw<N>dp不同的是,當屏幕橫向縱向切換時,屏幕的寬度是變化的,以變化後的寬度來與N相比,看是否使用此資源文件下的資源。
G. android dimens 怎麼適配
在res中建立不同的values—normal(large、xlarge)-m(h、xh)dpi分別對應不同的屏幕尺寸和不同的解析度(small和ldpi在手機上沒有可以不考慮),例如values-large-mdpi他對應的是手機尺寸在4到7寸之間屏幕密度在140到200之間的手機;或者你對某一款手機做精確適配就是values-w1080dp-h720dp-m(h、xh)dpi 不過一般推薦使用區間適配 有的時候我也不確定他會找哪一個文件下面的對應的dimens 不過一般他會找和自己最相近的那個values進行適配 你可以在android API裡面尋找 google大神們 會考慮這一點的 查看原帖>>
H. Android 如何分別控制同寬度解析度比如480*800和480*854的values
可以參考下這張圖
I. android如何適配不同解析度
Android應用如何適配不同解析度的手機,主要分三塊考慮:
1.界面配置,根據不同的解析度,創建手機界面文件
例子:
在res下創建 layout-800x480,layout-480x320,並在各自不同解析度的文件夾下創建界面文件
2.圖片配置,不同的解析度,界面的長寬比不一致,需要不同規格的圖片,在drawable-hdpi,drawable-ldpi,drawable-mdpi 中放不同解析度的圖片.
注:為了減小整個應用程序安裝包大小,選用最高解析度適配,特殊界面圖片特殊處理.
3.動態實現的界面,樣式的設定,不同解析度,界面的字體大小,字體等需要不同的樣式,且需要動態生成的情況下,需要把不同解析度的配置信息保存到應用中。
例子:
在RES里創建 values-480x320 values-800x400 value-1280x720,並在創建的文件夾中分別創建dimens.xml,<dimen name="Text_size">30px</dimen>,在程序中直接調R.dimen.Text_sizeint sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);
注:實際應用發現,字體大小適配時,比如只適配了如下屏幕字體
values-480x320 values-800x480 value-1280x720當出現手機屏幕解析度為 854x480時會自動找最大字體適配 (value-1280x720).
總結:如果字體800x480以上沒有適配,手機自動按最大解析度適配.
J. 安卓app設計屏幕解析度適配問題怎麼解決
想要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代碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activity android:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
另外,android中每次屏幕的切換動會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
有的程序適合從豎屏切換到橫屏,或者反過來,這個時候怎麼辦呢?可以在配置Activity的地方進行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。
而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時候進行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重寫Activity的 onConfigurationChanged方法。實現方式如下,不需要做太多的內容:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// land do nothing is ok
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// port do nothing is ok
}
}
寫一個支持多分辨的程序,基於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的多分辨支持的文件夾