當前位置:首頁 » 安卓系統 » android開發ui

android開發ui

發布時間: 2022-12-08 22:13:33

1. 安卓移動開發的前端UI設計可以使用哪些不同的布局,這些布局適用於哪些情況

沒懂啥意思,是前端還是ui?
UI的話就是隨便設計,使用什麼布局是技術的問題,安卓的布局就是以下六大基本布局
線性布局
線性布局在開發中使用最多,具有垂直方向與水平方向的布局方式,通過設置屬性「android:orientation」控制方向,屬性值垂直(vertical)和水平(horizontal),默認水平方向。
RelativeLayout
相對布局可以讓子控制項相對於兄弟控制項或父控制項進行布局,可以設置子控制項相對於兄弟控制項或父控制項進行上下左右對齊。
FrameLayout
幀布局或叫層布局,從屏幕左上角按照層次堆疊方式布局,後面的控制項覆蓋前面的控制項。
AbsoluteLayout
絕對布局中將所有的子元素通過設置android:layout_x 和 android:layout_y屬性,將子元素的坐標位置固定下來,即坐標(android:layout_x, android:layout_y) ,layout_x用來表示橫坐標,layout_y用來表示縱坐標。屏幕左上角為坐標(0,0),橫嚮往右為正方,縱嚮往下為正方。實際應用中,這種布局用的比較少,因為Android終端一般機型比較多,各自的屏幕大小。解析度等可能都不一樣,如果用絕對布局,可能導致在有的終端上顯示不全等。
TableLayout
表格布局,適用於多行多列的布局格式,每個TableLayout是由多個TableRow組成,一個TableRow就表示TableLayout中的每一行,這一行可以由多個子元素組成。
GridLayout(網格布局)
作為android 4.0 後新增的一個布局,與前面介紹過的TableLayout(表格布局)其實有點大同小異;

2. Android開發中多線程與UI更新

直接在UI線程中開啟子線程來更新TextView顯示的內容,運行程序我們會發現,如下錯誤:android.view.ViewRoot$: Only the original thread that created a view hierarchy can touch its views.翻譯過來就是:只有創建這個控制項的線程才能去更新該控制項的內容。

所有的UI線程要去負責View的創建並且維護它,例如更新冒個TextView的顯示,都必須在主線程中去做,我們不能直接在UI線程中去創建子線程,要利用消息機制:handler,如下就是handler的簡單工作原理圖:

既然android給我們提供了Handler機制來解決這樣的問題,請看如下代碼:

public class HandlerTestActivity extends Activity { private TextView tv; private static final int UPDATE = 0; private Handler handler = new Handler() { @Overridepublic void handleMessage(Message msg) { // TODO 接收消息並且去更新UI線程上的控制項內容if (msg.what == UPDATE) { // Bundle b = msg.getData();// tv.setText(b.getString("num")); tv.setText(String.valueOf(msg.obj)); } super.handleMessage(msg); } }; /** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView) findViewById(R.id.tv); new Thread() { @Overridepublic void run() { // TODO 子線程中通過handler發送消息給handler接收,由handler去更新TextView的值try { for (int i = 0; i < 100; i++) { Thread.sleep(500); Message msg = new Message(); msg.what = UPDATE; // Bundle b = new Bundle();// b.putString("num", "更新後的值:" + i);// msg.setData(b); msg.obj = "更新後的值:" + i; handler.sendMessage(msg); } } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); }}

我們就通過Handler機制來處理了子線程去更新UI線程式控制制項問題,Andrid開發中要經常用到這種機制。

3. Android主頁面UI框架(一)

    隨著APP的普及,各式各樣的APP主頁面的框架,也各不相同。一般如仿qq主頁面的框架、酷狗音樂、或者是微信等用戶量非常大的APP的主框架頁面是主流的,本篇文章是個人在開發中經常用的一些主頁面框架。

1、本篇主要是Activity與Fragment之間的相互切換如下:

4. android開發 如何定義UI素材的尺寸

看手機的解析度和尺寸。android 項目框架中 在 res 文件夾下面有 drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi drawable-xxhdpi,主流就是 hdpi 中等精度的屏幕。以主流 hdpi 為標准,設計 UI 素材的尺寸。然後 在此基礎上,來設計更高精度的圖片。
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
int width = metric.widthPixels; // 屏幕寬度(像素)
int height = metric.heightPixels; // 屏幕高度(像素)
float density = metric.density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi = metric.densityDpi; // 屏幕密度DPI(120 / 160 / 240)
一般按照屏幕密度來設置你的圖片尺寸。

熱點內容
win7最近打開文件夾 發布:2024-04-26 15:23:00 瀏覽:554
演算法筆談 發布:2024-04-26 15:14:34 瀏覽:283
技算計編程 發布:2024-04-26 14:43:42 瀏覽:140
開普票密碼區和備注是什麼意思 發布:2024-04-26 14:43:31 瀏覽:852
吃雞安卓和蘋果如何加好友 發布:2024-04-26 14:39:10 瀏覽:836
centos編譯命令 發布:2024-04-26 14:18:04 瀏覽:654
網路編程畢設 發布:2024-04-26 14:13:10 瀏覽:208
秦九韶演算法教案 發布:2024-04-26 13:30:22 瀏覽:412
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867