Android UI控制元件系列:ImageButton(帶圖示的按鈕)
除了Android系統自帶的Button按鈕以外,還提供了帶圖示的按鈕ImageButton
要製作帶圖示的按鈕,首先要在佈局檔案中定義ImageButton,然後通過setImageDrawable方法來設定要顯示的圖示。
注意:
我們可以在佈局檔案中就直接設定按鈕的圖示,如
android:src=”@drawable/icon1″
我們也可以在程式中設定自定義圖示
imgbtn3.setImageDrawable(getResources().getDrawable(R.drawable.icon2));
我們還可以使用系統自帶的圖示
imgbtn4.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));
設定完按鈕的圖示後,需要為按鈕設定監聽setOnClickListener,以此捕獲事件並處理
下面的例子講述的是由4個圖示按鈕組成的佈局,其中三個按鈕的圖示是自定義的,第四個按鈕的圖示是系統的,當點選按鈕1的時候,彈出dialog,當點選按鈕2的時候,點選確定後,可以將按鈕2的圖示變成按鈕3的圖示,當點選按鈕3的時候,按鈕3的圖示變成了系統打電話的圖示,點選按鈕4,顯示一個提示dialog
ImageButtonTest.java原始碼
package org.loulijun.imagebutton; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.TextView; public class ImageButtonTest extends Activity { /** Called when the activity is first created. */ TextView textview; ImageButton imgbtn1; ImageButton imgbtn2; ImageButton imgbtn3; ImageButton imgbtn4; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textview=(TextView)findViewById(R.id.textview); //分別取得4個ImageButton物件 imgbtn1=(ImageButton)findViewById(R.id.imagebutton1); imgbtn2=(ImageButton)findViewById(R.id.imagebutton2); imgbtn3=(ImageButton)findViewById(R.id.imagebutton3); imgbtn4=(ImageButton)findViewById(R.id.imagebutton4); //分別為ImageButton設定圖示 //imgbtn1已經在main.xml佈局中設定了圖示,所以就不在這裡設定了(設定圖示即可在程式中設定,也可在佈局檔案中設定) imgbtn2.setImageDrawable(getResources().getDrawable(R.drawable.icon));//在程式中設定圖示 imgbtn3.setImageDrawable(getResources().getDrawable(R.drawable.icon2)); imgbtn4.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_call_incoming));//設定系統圖示 //下面為各個按鈕設定事件監聽 imgbtn1.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this) .setTitle("提示") .setMessage("我是ImageButton1") .setPositiveButton("確定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //相應的處理操作 } }).create(); dialog.show(); } }); imgbtn2.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this) .setTitle("提示") .setMessage("我是ImageButton2,我要使用ImageButton3的圖示") .setPositiveButton("確定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub imgbtn2.setImageDrawable(getResources().getDrawable(R.drawable.icon2)); } }).create(); dialog.show(); } }); imgbtn3.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this) .setTitle("提示") .setMessage("我是ImageButton3,我想使用系統打電話的圖示") .setPositiveButton("確定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub imgbtn3.setImageDrawable(getResources().getDrawable(android.R.drawable.sym_action_call)); } }).create(); dialog.show(); } }); imgbtn4.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Dialog dialog=new AlertDialog.Builder(ImageButtonTest.this) .setTitle("提示") .setMessage("我是使用的系統圖示") .setPositiveButton("確定",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //相應的處理操作 } }).create(); dialog.show(); } }); } }
佈局檔案main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ImageButton測試案例" /> <ImageButton android:id="@+id/imagebutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon1" /> <ImageButton android:id="@+id/imagebutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageButton android:id="@+id/imagebutton3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageButton android:id="@+id/imagebutton4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
執行效果如下:
點選第一個按鈕後
點選確定後,點選第二個按鈕
點選確定,此時會看到按鈕二的圖示程式設計和按鈕三的圖示一樣了
點選按鈕三
點選確定後,發現按鈕三的圖示變成了系統打電話的圖示
點選按鈕四
相關文章
- UI設計按鈕圖示素材幹貨模板UI
- Android Material Design控制元件使用(二)——FloatButton TextInputEditText TextInputLayout 按鈕AndroidMaterial Design控制元件
- 左右帶有按鈕圖片水平滾動
- iOS 左滑按鈕(UITableViewRowAction)顯示圖片iOSUIView
- tkinter中button按鈕控制元件(三)控制元件
- DcatAdmin行操作按鈕樣式調整(圖示+文字)
- element ui 解除禁用按鈕狀態UI
- Dcat Admin 修改全域性行操作按鈕顯示方式為文字+圖示
- Android 點選按鈕跳轉Android
- Qt自定義開關按鈕控制元件QT控制元件
- SAP S/4HANA系統Fiori UI上Adapt UI按鈕顯示與否的控制邏輯UIAPT
- 直播系統開發,Flutter建立圓圈圖示按鈕Flutter
- php短視訊原始碼,按鈕的圓角圖示實現PHP原始碼
- js.ui中的datepicker 元件增加清除按鈕JSUI元件
- winform的bindingNavigator上按鈕顯示問題ORM
- 安卓開發學習-按鈕控制元件安卓控制元件
- C#自定義控制元件—旋轉按鈕C#控制元件
- iview Table元件渲染操作按鈕, render 渲染icon圖示更改方法View元件
- 如何啟用SAP CRM附件UI上的advanced按鈕UI
- VC 點陣圖按鈕CBitmapButton的使用
- 【HTC-VIVE】15-ButtonHints:UI的按鈕的互動UI
- Fiori Elements List Report table 裡的普通按鈕,Global 按鈕 和 Determining 按鈕
- Flutter學習筆記(11)--文字元件、圖示及按鈕元件Flutter筆記字元元件
- 58同城APP導航、按鈕、表單、圖示運用淺析APP
- Android處理按鈕重複點選Android
- Android | 使用 AspectJ 限制按鈕快速點選Android
- win10顯示休眠按鈕設定方法 win10電源怎麼顯示休眠按鈕Win10
- RadioButton文字按鈕間距設定,按鈕在文字右端顯示,RadioButton 右端對齊
- 初學 Bootstrap 按鈕與圖片boot
- VBA 控制元件學習筆記(按鈕點選事件)控制元件筆記事件
- 帶燈LED按鈕開關接線方法
- 如何使用原生的 JavaScript 程式碼,觸發 SAP UI5 按鈕控制元件的點選事件處理函式JavaScriptUI控制元件事件函式
- Re從零開始的UI庫編寫生活之按鈕UI
- Element原始碼分析系列3-Button(按鈕)原始碼
- 使用SAP C4C rule editor動態控制UI上某個按鈕是否顯示UI
- 仿餓了麼加入購物車旋轉控制元件 – 自帶閃轉騰挪動畫 的按鈕控制元件動畫
- UWP WinUI 製作一個路徑向量圖示按鈕樣式入門UI
- 使用SVG實現的一個Android播放/暫停按鈕SVGAndroid
- VsCode顯示左邊摺疊程式碼+-按鈕VSCode