當前位置:首頁 » 安卓系統 » 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)
一般按照屏幕密度來設置你的圖片尺寸。

熱點內容
c語言銀行利率 發布:2023-02-05 16:01:26 瀏覽:393
so編譯器版本 發布:2023-02-05 15:50:56 瀏覽:387
c語言編程規則 發布:2023-02-05 15:50:44 瀏覽:800
電動拉閘門遙控器怎麼配置 發布:2023-02-05 15:42:57 瀏覽:832
交通訪問 發布:2023-02-05 15:42:54 瀏覽:256
安卓手機如何知道自己去了哪裡 發布:2023-02-05 15:42:06 瀏覽:318
垃圾壓縮液 發布:2023-02-05 15:41:59 瀏覽:858
安卓10支持哪個聖安地列斯 發布:2023-02-05 15:34:11 瀏覽:704
mutexpython 發布:2023-02-05 15:33:55 瀏覽:464
oraclesql總結 發布:2023-02-05 15:33:06 瀏覽:204