Android 开发笔记___图像按钮__imageButton

IMAGEBUTTON

其实派生自image view,而不是派生自button。,image view拥有的属性和方法,image button 统统拥有,只是imagebutton有个默认的按钮外观。

  • image button  只能显示图形
  • imagebutton 上面的图片可按比例拉伸
  • 只能在背景显示一张图形,但分别在前景和背景显示两张图片,实现图片叠加的效果
  • 在输入法无法输入的字符和特殊字体显示的字符串,就适合用imagebutton,   先切图再显示
  • 要想在文字周围放图片可以用基于text view 的 button,
  • 具体在xml中设置如下属性:
    • drawableTop:指定文本上方的图片
    • drawableBottom:指定文本下方的图片
    • drawableLeft:指定文本左边的图形  
    • drawableRight:指定文本右边的图片
    • drawablepadding:指定图形文本间距
  • 在代码中:
    • setCompoundDrawables:设置文本周围图形,上下左右
    • setCompoundDrawablePadding:间距

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical">
 6
 7     <Button
 8         android:id="@+id/btn_icon"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:layout_marginTop="10dp"
12         android:layout_gravity="center"
13         android:drawableLeft="@mipmap/ic_launcher"
14         android:drawablePadding="5dp"
15         android:text="热烈欢迎"
16         android:textColor="#000000"
17         android:textSize="17sp" />
18
19     <LinearLayout
20         android:layout_width="match_parent"
21         android:layout_height="wrap_content"
22         android:layout_marginTop="10dp"
23         android:orientation="horizontal">
24
25         <Button
26             android:id="@+id/btn_left"
27             android:layout_width="0dp"
28             android:layout_height="wrap_content"
29             android:layout_weight="1"
30             android:text="图标在左"
31             android:textColor="#000000"
32             android:textSize="15sp" />
33
34         <Button
35             android:id="@+id/btn_top"
36             android:layout_width="0dp"
37             android:layout_height="wrap_content"
38             android:layout_weight="1"
39             android:text="图标在上"
40             android:textColor="#000000"
41             android:textSize="15sp" />
42
43         <Button
44             android:id="@+id/btn_right"
45             android:layout_width="0dp"
46             android:layout_height="wrap_content"
47             android:layout_weight="1"
48             android:text="图标在右"
49             android:textColor="#000000"
50             android:textSize="15sp" />
51
52         <Button
53             android:id="@+id/btn_bottom"
54             android:layout_width="0dp"
55             android:layout_height="wrap_content"
56             android:layout_weight="1"
57             android:text="图标在下"
58             android:textColor="#000000"
59             android:textSize="15sp" />
60
61     </LinearLayout>
62
63 </LinearLayout>

java

 1 package com.example.alimjan.hello_world;
 2
 3 import android.content.Context;
 4 import android.content.Intent;
 5 import android.graphics.drawable.Drawable;
 6 import android.os.Bundle;
 7 import android.support.v7.app.AppCompatActivity;
 8 import android.view.View;
 9 import android.widget.Button;
10
11 /**
12  * Created by alimjan on 7/1/2017.
13  */
14
15
16 public class class__2_3_4 extends AppCompatActivity implements View.OnClickListener {
17     private Button btn_icon;
18     private Drawable drawable;
19
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.code_2_3_4);
24         btn_icon = (Button) findViewById(R.id.btn_icon);
25         drawable = getResources().getDrawable(R.mipmap.ic_launcher);
26         // 必须设置图片大小,否则不显示图片
27         drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
28         Button btn_left = (Button) findViewById(R.id.btn_left);
29         Button btn_top = (Button) findViewById(R.id.btn_top);
30         Button btn_right = (Button) findViewById(R.id.btn_right);
31         Button btn_bottom = (Button) findViewById(R.id.btn_bottom);
32         btn_left.setOnClickListener(this);
33         btn_top.setOnClickListener(this);
34         btn_right.setOnClickListener(this);
35         btn_bottom.setOnClickListener(this);
36     }
37
38     @Override
39     public void onClick(View v) {
40         if (v.getId() == R.id.btn_left) {
41             btn_icon.setCompoundDrawables(drawable, null, null, null);
42         } else if (v.getId() == R.id.btn_top) {
43             btn_icon.setCompoundDrawables(null, drawable, null, null);
44         } else if (v.getId() == R.id.btn_right) {
45             btn_icon.setCompoundDrawables(null, null, drawable, null);
46         } else if (v.getId() == R.id.btn_bottom) {
47             btn_icon.setCompoundDrawables(null, null, null, drawable);
48         }
49     }
50
51     public static void startHome(Context mContext) {
52         Intent intent = new Intent(mContext, class__2_3_4.class);
53         mContext.startActivity(intent);
54     }
55 }
时间: 2024-10-10 03:49:34

Android 开发笔记___图像按钮__imageButton的相关文章

Android 开发笔记___图像视图

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:ori

Android 开发笔记___图像视图__简单截屏

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 a

Android 开发笔记___初级控件之实战__计算器

功能简单,实现并不难,对于初学者可以总和了解初级控件的基本使用. 用到的知识点如下: 线性布局 LinearLayout:整体界面是从上往下的,因此需要垂直方向的linearlayout:下面每行四个按钮,需要水平的linearlayout. 滚动视图 ScrollView    :虽然界面不宽也不高,以防万一,有可能会遇到屏幕特别小的手机,因此用一个垂直方向的scrollview. 文本视图 TextView      :上面标题就是一个textview,结果显示也是textview,但是更高

Android 开发笔记___登陆app

1 package com.example.alimjan.hello_world; 2 3 /** 4 * Created by alimjan on 7/4/2017. 5 */ 6 7 8 import android.content.Context; 9 import android.support.v7.app.AppCompatActivity; 10 import android.app.AlertDialog; 11 import android.content.DialogIn

Android 开发笔记___复选框__checkbox

1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:orientation="vertical" 5 android:padding="10d

Android 开发笔记___存储方式__共享参数__sharedprefences

Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一些用户的设置保存在手机里面的一个存储区域, 格式是XML key__Value 不方便保存关系比较复杂的数据 write 1 package com.example.alimjan.hello_world; 2 3 /** 4 * Created by alimjan on 7/4/2017. 5

Android 开发笔记___滚动视图__scroll view

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" android:layout_width="match_parent" 4 android:l

Android 开发笔记___时间选择器---timePicker

像datepicker一样,也有timepicker. 同样有timepickerdialog 所用到的方法还是一样,监听时间选择器的变化. 1 package com.example.alimjan.hello_world; 2 3 import java.util.Calendar; 4 5 /** 6 * Created by alimjan on 7/15/2017. 7 */ 8 9 import android.app.TimePickerDialog; 10 import andr

Android开发笔记(一百三十四)协调布局CoordinatorLayout

协调布局CoordinatorLayout Android自5.0之后对UI做了较大的提升,一个重大的改进是推出了MaterialDesign库,而该库的基础即为协调布局CoordinatorLayout,几乎所有的design控件都依赖于该布局.协调布局的含义,指的是内部控件互相之前的动作关联,比如在A视图的位置发生变化之时,B视图的位置也按照某种规则来变化,仿佛弹钢琴有了协奏曲一般. 使用CoordinatorLayout时,要注意以下几点:1.导入design库:2.根布局采用androi