1. 程式人生 > >安卓開發-圖示的使用以及圖形按鈕

安卓開發-圖示的使用以及圖形按鈕

在安卓介面的設計過程中,不免要使用許多圖示,例如返回,設定圖示等,本文記錄圖示的一些使用。

一、開源庫的使用

在我設計介面的時候,想要實現一個帶圖示的按鈕,那麼如何獲取需要的圖示成為一個問題。

剛寫程式碼的小白對GitHub並不熟悉,但是它真的是強大。使用一些開源的庫檔案,可以對專案開發起到很大的幫助。首先拉出一個強大的連線,聚集了各類GitHub上的開源專案。Github上受歡迎的Android 開源 UI

其中,我使用這個庫,material-icon-lib,我也是剛開始用github,所以找一個使用說明比較詳細的,發現真的好用,新增依賴之後,更行一下gradle,然後就可以呼叫庫了。

二、Android studio的相簿外掛

在開發環境中安裝外掛,然後就可以按需要使用圖示啦。首先是安裝外掛:file->setting,點選plugin,如下

在搜尋中輸入Android Material Design Icon Generator,安裝外掛,然後重啟軟體。

然後在res->drawable右鍵new,最下面能看到material design icon,點選。(快捷鍵,滑鼠放至res->drawable處,ctrl+alt+m),在介面中選擇圖示,設定顏色和大小,名稱,儲存。然後就可以在需要用圖示的位置通過R.drawable.ic_name引用這個圖。

三、圖示按鈕的實現

有了可用圖示之後,現在製作一個帶圖示和文字的按鈕。使用textview控制元件可以很容易的實現。首先在layout檔案中新增一個textview。

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:gravity="center"
        android:text="TextView" />

然後在其activity中引用這個控制元件,並新增圖示。

public class MainActivity extends AppCompatActivity {
    private TextView btn_icon;
    private Drawable drawable;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //按鈕關聯
        btn_icon = findViewById(R.id.btn_icon);
        drawable = getResources().getDrawable(R.drawable.ic_settings_36dp);
        drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight()); //設定圖片的大小
        btn_icon.setCompoundDrawables(drawable,null,null,null);
        btn_icon.setText("設定");
        btn_icon.setTextSize(32);
    }
    
}

實現效果如下所示。

如實想實現一個較長的按鈕,並且改變圖示與文字之間的文字,可以通過改變圖片的起始位置以及文字與parent的距離,即setpadding實現。在上新增這兩行程式碼,並讓佈局中的textview寬頻設定較大的值。

 drawable.setBounds(200,0,200+drawable.getMinimumWidth(),drawable.getMinimumHeight());
 btn_icon.setPadding(280+drawable.getMinimumWidth(),0,410,0);

可以得到這個效果

 四、小結

本部分記錄了使用圖示的兩種方式,然後用textview實現的一個圖形按鈕。它與普通按鈕一樣可以通過

btn_icon.setOnClickListener(systemSet);

進行點選事件的監聽。

初寫博文,不足之處敬請諒解。如果有問題,歡迎問我。