我的技術博客Alpha----Android Studio UI學習

項目聯繫

此次的項目我在前端組,負責UI,下面簡略講下學到的內容和使用AS過程當中遇到的一些問題及其解決方法。前端

常見UI控件的使用

1.TextView


在TextView中,首先用android:id給當前控件定義一個惟一標識符。在活動中經過這個標識符對控件進行事件註冊。android:layout_width和
android:layout_height指定了控件的寬度和高度。Android中全部控件都有這兩個屬性,可選值有match_parent和wrap_content。match_parent表示讓當前控件和父佈局大小同樣,wrap_content表示讓當前控件的大小可以恰好包含住裏面的內容,也能夠經過xxdp來自定義大小。經過android:text能夠指定當前文本內容,android:textColor能夠指定文字的顏色,android:textSize能夠指定文字的大小,android:gravity能夠指定文字的對齊方式,這裏用的是center,表示水平和垂直方向都居中對齊。
以上是TextView的經常使用屬性。還有android:textStyle能夠指定文字的字體,可選值有bold加粗,italic斜體,normal常規,也能夠從外部導入本身下載的酷炫字體,不過要在活動裏寫,這裏就不詳細說了。java

2.Button

Button是程序和用戶進行交互的重要控件。Button可配置的屬性和TextView差很少,主要是Button裏的android:text設置的文字會把全部英文自動進行大寫轉換,若是咱們不想要所有大寫,能夠經過android:textAllCaps="false"來禁用這個默認特性
android

3.EditText

EditText是程序和用戶進行交互的另外一個重要控件,它容許用戶在控件裏輸入和編輯內容,並能夠在程序中對這些內容進行處理。咱們可使用android:hint屬性指定提示文本,當咱們輸入任意內容時,提示文本會自動消失。在這裏EditText指定的高度時wrap_content,它總能包含住裏面的內容,可是隨着內容的增多EditText會被不斷拉長,當內容過多時界面就會很難看,這時候咱們可使用andriod:maxLines屬性來指定EditText的行數。當輸入的內容超過兩行時,文本就會向上滾動,而EditText則不會繼續拉伸。app

4.ImageView

ImageView是用來在界面上展現圖片的控件。須要使用的圖片要先放到drawable目錄裏,而後使用android:src屬性指定咱們要用的圖片。
工具

5.ProgressBar

ProgressBar用於在界面上顯示一個進度條,表示咱們的程序正在加載一些數據。
佈局

咱們能夠經過style屬性將進度條指定成水平進度條,而後咱們還能夠經過android:max屬性給進度條設置一個最大值。而後在代碼中動態地更改進度條進度。
學習

6.AlertDialog

AlertDialog能夠在當前界面彈出一個置於全部界面元素之上的對話框,可以屏蔽掉其餘控件的交互能力,通常用來提示一些重要的內容或者警告信息,好比防止用戶誤刪重要內容,在刪除前彈出一個確認框。
字體

經常使用佈局

1.線性佈局Linearlayout

  • 線性佈局是一種很經常使用的佈局,它會將它所包含的控件在線性方向上依次排列,方向有垂直vertical和水平honrizontal兩種。方向經過android:orientation屬性來設定,若是不指定,默認的排列方式就是horizontal。
  • 在線性佈局裏咱們經過android:layout_gravity指定控件在佈局中的對齊方式,可選值和android:gravity差很少。gradle

  • 線性佈局裏有個屬性很是重要————android:layout_weight(權重),經過它咱們可使用比例的方式來指定控件的大小。ui

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
xmlns:tools="http://schemas.android.com/tools"    
android:id="@+id/LinearLayout1"    
android:layout_width="match_parent"    
android:layout_height="match_parent"  
android:orientation="horizontal" >    

<TextView    
    android:layout_weight="1"    
    android:layout_width="wrap_content"    
    android:layout_height="fill_parent"    
    android:text="one"     
    android:background="#98FB98"    
 />    
 <TextView    
    android:layout_weight="2"    
    android:layout_width="wrap_content"    
    android:layout_height="fill_parent"    
    android:text="two"     
    android:background="#FFFF00"    
 />    
 <TextView    
    android:layout_weight="3"    
    android:layout_width="wrap_content"    
    android:layout_height="fill_parent"    
    android:text="three"     
    android:background="#FF00FF"    
 />

2.相對佈局Relative

相對佈局和線性佈局相比顯得比較隨意,控件能夠出如今任意的位置,因此它的屬性很是的多,這裏貼張菜鳥教程裏的學習圖

其實layout_marginLeft、 layout_marginStart 、 layout_marginTop三個屬性搭配基本就能夠任意指定控件的位置了

遇到的錯誤及解決

1.

有些機子3.0版本的as會出現這個錯誤,項目剛建立完就報錯。具體的緣由還不太清楚,網上有人是說圖片的合法性檢測,可這個項目是空的。。。

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

解決很簡單,只要在項目的gradle.properties中加入這句代碼便可:

android.enableAapt2=false

2.

從新打開咱們的項目時,有時候會有莫名報錯或者模擬器運行跑不起來,通過檢查若是不是語法錯誤之類的能夠先clean project 再rebuild project ,這個方法解決了許多看不懂的報錯。。。

收穫

經過這個項目接觸了as,算是初步認識了一個新工具,還有GitHub的使用。最重要的收穫仍是由於這個項目真正體驗了軟件開發的過程,對軟件工程有了一個大體的認識。

相關文章
相關標籤/搜索