Android適配
阿新 • • 發佈:2018-11-02
所有單位使用單位px
0.美術切圖按固定比例。如1080*1920
一:XML配置
1.根目錄設定固定寬高(美術切圖比例)。如:1080*1920
2.圖片引用使用src,防止自動拉伸。如:android:src = "@drawable/loading_bg"
3. 圖片寬高使用切圖原始大小,如:loading_bg 的尺寸為1080*1920
例:
android:layout_width="1080px"
android:layout_height="1920px"
android:src="@drawable/loading_bg"
二:Activity控制根據螢幕大小縮放
getWindow().getDecorView().setBackgroundColor(Color.BLACK);
WindowManager wm = (WindowManager) FolderListActivity.this.getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight(); floatscaleNum = (float)height/1920f; rootLayout.setPivotY(0); rootLayout.setScaleY(scaleNum); rootLayout.setScaleX(scaleNum); if (scaleNum * 1080 < width) { int offsetX = (int)((width - scaleNum * 1080) / 2); ViewGroup.LayoutParams params = rootLayout.getLayoutParams(); if (params instanceof FrameLayout.LayoutParams) { ((FrameLayout.LayoutParams)params).setMargins(offsetX,0, 0, 0); } if (params instanceof LinearLayout.LayoutParams) { ((LinearLayout.LayoutParams)params).setMargins(offsetX, 0, 0, 0); } if (params instanceof RelativeLayout.LayoutParams) { ((RelativeLayout.LayoutParams)params).setMargins(offsetX, 0, 0, 0); } rootLayout.setLayoutParams(params); } Log.e("當前手機解析度:","寬:"+width+"..高:"+height); Log.e("當前手機解析度:","縮放係數:"+scaleNum);
三:顫抖吧,凡人!!!
xml佈局樣例:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainMenuLayout" android:layout_width="1080px" android:layout_height="1920px" android:background="#000" android:orientation="vertical"> <ImageView android:layout_width="1080px" android:layout_height="1920px" android:src="@drawable/loading_bg"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--標題--> <ImageView android:layout_width="884px" android:layout_height="338px" android:layout_gravity="center_horizontal" android:src="@drawable/menu_sudoku"/> <!--上按鈕--> <!--兩圈--> <RelativeLayout android:id="@+id/menu_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical"> <ImageView android:id="@+id/er_1" android:layout_width="1035px" android:layout_height="1102px" android:layout_centerInParent="true" android:src="@drawable/er_1"/> <ImageView android:id="@+id/er" android:layout_width="1035px" android:layout_height="1102px" android:layout_centerInParent="true" android:scaleType="fitCenter" android:src="@drawable/er"/> <ImageView android:id="@+id/classicBtn" android:layout_width="313px" android:layout_height="87px" android:layout_alignLeft="@+id/er" android:layout_alignTop="@+id/er" android:layout_marginLeft="150px" android:layout_marginTop="400px" android:src="@drawable/btn_classic"/> <ImageView android:id="@+id/popularBtn" android:layout_width="332px" android:layout_height="87px" android:layout_alignBottom="@+id/er" android:layout_alignRight="@+id/er" android:layout_marginBottom="300px" android:layout_marginRight="180px" android:src="@drawable/btn_popular"/> </RelativeLayout> <!--三圈--> <RelativeLayout android:id="@+id/menu_three" android:layout_width="match_parent" android:layout_height="0px" android:layout_centerInParent="true" android:gravity="center_horizontal|center_vertical" android:visibility="gone"> <ImageView android:id="@+id/san_1" android:layout_width="350px" android:layout_height="350px" android:layout_marginTop="20px" android:background="@drawable/san_1"/> <ImageView android:id="@+id/san" android:layout_width="350px" android:layout_height="350px" android:layout_marginTop="20px" android:background="@drawable/san"/> <ImageView android:id="@+id/easyBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="53px" android:layout_marginTop="145px" android:background="@drawable/btn_easy"/> <ImageView android:id="@+id/mediumBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="168px" android:layout_marginTop="250px" android:background="@drawable/btn_medium"/> <ImageView android:id="@+id/hardBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="205px" android:layout_marginTop="115px" android:background="@drawable/btn_hard"/> </RelativeLayout> <!--下按鈕--> <LinearLayout android:layout_width="match_parent" android:layout_height="0px" android:layout_alignParentBottom="true" android:layout_marginBottom="10px" android:layout_marginRight="30px" android:gravity="right" android:orientation="horizontal" > <ImageView android:id="@+id/statisticsBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_static"/> <TextView android:layout_width="20px" android:layout_height="wrap_content"/> <ImageView android:id="@+id/soundBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/sound_open"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0px" android:layout_alignParentBottom="true" android:layout_marginBottom="40px" android:gravity="right" android:orientation="horizontal"> <ImageView android:id="@+id/menu_back" android:layout_width="50px" android:layout_height="30px" android:layout_alignParentRight="true" android:layout_marginRight="30px" android:background="@drawable/button_out" android:visibility="gone" /> </LinearLayout> </LinearLayout> <RelativeLayout android:id="@+id/gameContainer" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> </RelativeLayout>