編輯:關於Android編程
1、圖片適配
2、dimens適配
3、布局文件適配
4、java代碼適配
5、權重適配
不同像素密度的手機加載工程資源文件(res)中不同的資源圖片
例如:mi3手機,主屏尺寸是5英寸,主屏分辨率:1920x1080像素。
根據勾股定理可算出其像素密度:Sqrt(1920^2+ 1080^2)/5 ≈ 441dpi,即mi3的屏幕像素密度約等於441dpi。
根據google官方文檔中對像素密度的劃分,mi3的像素密度最接近xxhdpi,因此,對mi3這款手機做圖片適配的話需要按照xxhdpi單獨切圖。dimens.xml存在於工程資源(res)文件夾中不同values(如:value-1280x720、value-800x480、values-xhdpi)文件夾下,可用於指定控件大小,不同像素密度手機加載不同values文件夾下的dimens.xml文件,通常用dimens適配,需要寫多個文件,去適配市面上主流的機型。
例如:360手機助手使用dimens適配
適配方式三:布局文件適配
不同分辨率的手機,加載不同的布局文件以達到適配效果。
創建多個layout(如:layout-1280x720、layout-800x480)文件夾用於存放不同像素密度手機所需布局文件。
適配方式四:java代碼適配
通過android相應api獲取當前手機的寬高像素值,按比例分配屏幕中控件的寬高以達到適配效果。
核心代碼(將這個文本框的寬高設置為屏幕寬高的一半): TextView tv = (TextView) findViewById(R.id.tv); //獲取封裝當前手機屏幕信息對象,用於存放寬高值 DisplayMetrics metrics = new DisplayMetrics(); //給當前屏幕設置寬高 getWindowManager().getDefaultDisplay().getMetrics(metrics); //獲取屏幕高度 int srceenHeight = metrics.heightPixels; //獲取屏幕寬度 int srceenWidth = metrics.widthPixels; //寬高各占50% RelativeLayout.LayoutParamslayoutParams = new RelativeLayout.LayoutParams( (int)(srceenWidth*0.5+0.5),(int)(srceenHeight*0.5+0.5)); tv.setLayoutParams(layoutParams);
通過android中線性布局中的屬性(layout_weight權重) 按比例來分配,已達到適配效果。
例如:兩個按鈕平分屏幕的寬度
< Button android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"/>
上篇分析了View的事件分發流程,留了一個問題:如果上面的EventButton繼承TextView的話,按下抬起,會有一個現象,我可以告訴大家現象:就是只有dispat
前言:RecyclerView出現已經有一段時間了,我們肯定不陌生了,可以通過導入support-v7對其進行使用。根據官方的文檔,該控件用於在有限的窗口中展示大量數據集
本課程將帶領大家通過自定義控件實現QQ5.0側滑菜單,課程將循序漸進,首先實現最普通的側滑菜單,然後引入屬性動畫與拖動菜單效果相結合,最終實現QQ5.0側滑菜單效果。通過
一、 要實現高德地圖定位呢,首先需要做好以下幾步准備:1. 在高德開放平台注冊帳號注冊地址:http://lbs.amap.com2. 在開發中下載Android平台下的