android切換布局
① android view怎麼滑動切換布局
復寫觸摸時間,監聽滑動效果,觸發設置布局方法即可
② android 怎樣使fragment 更換布局
我們通常是用
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_view, fragment).commit();
來添加fragment到指定的視圖位置。所以你的需求只需你動態的改變需要替換的這個view的位置就好了,替換流程還是不變的。
動態的改變view的位置,這需要你在java代碼里動態的設置view的位置。
③ android 的界面布局 怎麼適應不同解析度的手機 以及橫豎屏間的切換
各種Android操作系統的手機簡直就是琳琅滿目,屏幕解析度的差異可想而知。目前比較主流的有WVGA=800x480,HVGA=480x320,另外的還有QVGA=320x240。當然還有魅族M9的DVGA=960x640,還有蛋疼的摩托羅拉的FWVGA=854x480。
其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因為這樣的布局永遠是無法適應所有手機屏幕的。
正確的做法應該是使用的是weight屬性。將你控制項的layout中的width、height設置為fill-parent,不要使用wrap——content。因為wrap-content的大小是不固定的。而weight(權重)這個屬性很好的解決了這個問題。
當包裹在控制項外面的Layout的width、height屬性都設置為fill-parent時,可以利用weight的反比特性。即如果控制項A設置weight為5,控制項B設置weight為7,那麼A所佔的空間為5/(5+7),B所佔的空間為7/(5+7)。這樣的反比屬性對任何解析度下的手機都是合適的。
當然,字體就不行了。那怎麼保證字體能夠跟布局一樣能夠自適應呢?
呵呵,很簡單,就是在你的res文件夾中創建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的解析度,根據你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創建一個dimens.xml文件,定義各種字體的大小。那麼系統就會自動根據你手機屏幕的解析度去調用響應的文件夾。
另外,值得提醒的是,記得在你默認的values文件下的dimens.xml文件中也要寫上相應的字體大小哦,因為當系統無法認識你手機屏幕大小的時候,它會自動去找你默認文件中的
東西,沒有寫的話程序會崩潰。
************************************************************分割線************************************************************
在看下面內容之前首先請看你SDK文檔中以下這篇文章
其實google在解析度適應性的東西已經寫的很清楚了,只是我們很多人沒去看而已
以下是結論:
屏幕解析度:1024x600
density:1(160)
文件夾:values-mdpi-1024x600
屏幕解析度:1024x600
density:1.5(240)
文件夾:values-hdpi-683x400 由1024/1.5 600/1.5得到,需要四捨五入。
屏幕解析度:800x480
density:1(160)
文件夾:values-mdpi-800x480
屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-533x320 由800/1.5 480/1.5得到,需要四捨五入。
以此類推
一般情況下需要創建出values 、values-mdpi 、 values-hdpi文件夾,以備在一些沒有規定的尺寸屏幕上找不到資源的情況。
然後在裡面使用不同的dimens文件,Layout中不要使用顯示的數字,所有的尺寸定義全都援引dimens裡面的內容。
這樣能夠保證深度UI定製的情況
另外在工程的default.properties中如果split.density=false,則解析度適配的時候文件夾命名不需要與scale相除
例
屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-800x480
************************************************************分割線************************************************************
關於dimens
位置:res\values
單位:px Pixel 以畫面的像素為單位;
in Inches以畫面的多少英寸為單位;
mm Millimeter以畫面的多少毫米為單位;
pt Points 一點為1/72英寸;
dp或dip Density-indepentdent 為160dpi屏幕的一個pixel;
ap Scale-independent Pixels 隨屏幕尺寸改變的一個pixel;
1.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)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
在2.1之前的版本可以通過drawable-800x480, drawable-480x320 等方式實現。
2:layout:放置對應不同解析度的布局
創建不同的layout文件夾, layout-800x480,layout-480x320, 系統會根據屏幕的大小自己選擇合適的layout進行使用。
另外:可以在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局文件。
下面列出主流的android機型有:
240x320低端,國產入門級採用,例如HTC G4,G8
320x480中端,大部分基於此解析度,例如HTC G1,G2,G3,G6, MOTO ME600, SAMSUNG I7500
480x800中高端,大部分基於此解析度,例如HTC G5,G7, MOTO MT810
480x854MOTO特有的,例如Droid, Milestone, XT800
960x640, 魅族M9
④ android 中如何用back鍵,控制View的切換
@Override
public void onBackPressed() {
if (mView2.getVisibility() == View.VISIBLE) {//如果現在是顯示的view2布局
//顯示view1布局,隱藏view2布局
mView1.setVisibility(View.VISIBLE);
mView2.setVisibility(View.GONE);
} else if (mView3.getVisibility() == View.VISIBLE) {//如果現在是顯示的view3布局
//顯示view2布局,隱藏view3布局
mView2.setVisibility(View.VISIBLE);
mView3.setVisibility(View.GONE);
} else { //否則使用默認的返回鍵按下處理邏輯
super.onBackPressed();
}
}
⑤ android開發怎麼把線性布局改為相對布局
在Android中修改Activity的布局樣式是在layout布局文件夾中通過修改布局文件的layout標簽完成的
如下圖所示:
只需將圖中標識的LinearLayout標簽改寫成RelativeLayout就可以了!
⑥ android activity載入layout之後,如何切換另一個layout
把兩個Layout都放進activityB對應的Layout中,然後判斷控制顯示或隱藏其中的布局1或布局2
⑦ 在eclipse中創建android project會產生默認組件布局,如果想用其他布局,怎麼切換
不是在eclipse里修改的,可以直接到<AndroidSDK>目錄下找相應的文件進行修改。
比如要修改2.1的默認layout布局,對應要修改的文件路徑為:
<AndroidSDK>\platforms\android-2.1\templates\layout.template
這目錄裡面還有其他的一些模板可以修改,請試驗。
⑧ android 橫屏和豎屏布局不同時,需要onCreate()重新載入,如何不重新載入讓數據保存,並切換不同的布局
Activity橫豎屏切換的時候會重新onCreate,如果不想重裝載,需要以下設置:
在AndroidManifest.xml的每一個需要禁止轉向的Activity配置中加入android:screenOrientation=」landscape」屬性。
參數說明:
landscape = 橫向
portrait = 縱向
避免在轉屏時重啟Activity
android中每次屏幕方向切換時都會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次 Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
要避免在轉屏時重啟Activity,可以通過在AndroidManifest.xml文件中重新定義方向(給每個Activity加上android:configChanges=」keyboardHidden|orientation」屬性)。
在需要控制屏幕顯示方向的Activity中重寫onConfigurationChanged(Configuration newConfig)方法,這樣在轉屏時就不會重啟Activity了。
⑨ android 一個listview中有多個布局切換
如果布局不是很多的話,可以寫在同一個Item中,然後根據不同的情況,在adapter 的getView中對不同布局的顯隱性進行變更。從而實現一個listView有多種布局。這個我之前實踐過。可行的。希望這個思路能幫到您。
⑩ android studio怎麼設置布局
1、進行打開電腦中的android
studio中進行設置布局上的窗口選項。
2、默認布局設定完成之後,然後進行android
studio菜單中的「windows」的選項。
3、然後就會彈出了一個下拉菜單中,進行選擇為「store
current
layout
as
default」的選項。點擊完成之後,就會android
studio的布局進行保存。
4、而現在對android
studio的默認的布局進行改變,改變之後都不是自己想要的布局。
5、而想把自己布局改為自己的保存好的android
studio的布局方式,進行點擊android
studio菜單中的」windows「菜單。
6、然後就會彈出了下拉的菜單中的進行選擇「restore
default
layout」的選項,就恢復到了自定義的布局了。
android
studio設置復位,將設置恢復到初始化方法
1.刪除c盤下的配置文件
路徑為c:users用戶名.androidstudio1.2(名字視版本號定)
,
2.重新打開android
studio
按照下圖方式選擇,選擇後手動配置設置
3.選擇custom,然後下一步
4.後面手動選擇sdk位置,然後點下一步,會檢測更新,檢測完了點擊finish整個android
studio就重新配置好了,要修改設置的話進入程序後找到configure自行修改