zoukankan      html  css  js  c++  java
  • 带文字的ImageButton[自定义]

    今天Android项目中遇到一个ImageButton控件上面要显示文字,无奈自定义了一个ImageButton,继承自ImageButton。其实就是override这个控件的onDraw(Canvas canvas)方法;代码如下:

    package sRoger.pack.Utility;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.Paint.Align;
    import android.util.AttributeSet;
    import android.widget.ImageButton;
    
    /**
     * 自定义ImageButton
     * 可以在ImageButton上面设置文字
     * @author SJR
     */
    public class CustomImageButton extends ImageButton {
        private String _text = "";
        private int _color = 0;
        private float _textsize = 0f;
        
        public CustomImageButton(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        
        public void setText(String text){
            this._text = text;
        }
        
        public void setColor(int color){
            this._color = color;
        }
        
        public void setTextSize(float textsize){
            this._textsize = textsize;
        }
        
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint paint = new Paint();
            paint.setTextAlign(Align.CENTER);
            paint.setColor(_color);
            paint.setTextSize(_textsize);
            canvas.drawText(_text, canvas.getWidth()/2, (canvas.getHeight()/2)+12, paint);
        }
    }

    Activity对应的布局xml文件代码:

    <LinearLayout 
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:orientation="horizontal">
           <sRoger.pack.Utility.CustomImageButton 
               android:id="@+id/login_btnLogin"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:src="@drawable/login_btn_bg"
               android:background="#eeeeee"
               android:scaleType="fitXY"
               android:layout_marginLeft="15dp"
               android:layout_marginTop="15dp"
               android:layout_marginRight="5dp"
               android:layout_weight="1"/>
           <sRoger.pack.Utility.CustomImageButton 
               android:id="@+id/login_btnRegister"
               android:layout_width="0dp"
               android:layout_height="wrap_content"
               android:src="@drawable/login_btn_bg"
               android:background="#eeeeee"
               android:scaleType="fitXY"
               android:layout_marginLeft="5dp"
               android:layout_marginRight="15dp"
               android:layout_marginTop="15dp"
               android:layout_weight="1" />
       </LinearLayout>

    这是我的程序里面使用这个自定义ImageButton的代码。 

    下面就是为这个自定义的ImageButton设置字体了(就是我使用这个自定义的ImageButton的Activity里面),代码如下:

    package sRoger.pack.MyActivity
    
    import sRoger.pack.R;
    import sRoger.pack.Utility.CustomImageButton;
    
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.widget.LinearLayout;
    import android.widget.Toast;
    
    public class LoginActivity extends Activity {
        private CustomImageButton login_btn_login;
        private CustomImageButton login_btn_register;
        //自定义ImageButton上面显示的字体的大小
        private float BTN_TEXTSIZE = 32f;
        //自定义ImageButton上面显示的字体的颜色
        private int BTN_TEXTCOLOR = Color.WHITE;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 设置当前Activity没有标题栏
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            //设置当前Activity为全屏模式
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.login_activity);
            
            login_btn_login = (CustomImageButton)findViewById(R.id.login_btnLogin);
            login_btn_register = (CustomImageButton)findViewById(R.id.login_btnRegister);
            // 设置自定义ImageButton上面要显示的文本内容
            login_btn_login.setText("登录");
            // 设置自定义ImageButton上面要显示的文本内容
            login_btn_register.setText("注册");
            login_btn_login.setColor(BTN_TEXTCOLOR);
            login_btn_register.setColor(BTN_TEXTCOLOR);
            login_btn_login.setTextSize(BTN_TEXTSIZE);
            login_btn_register.setTextSize(BTN_TEXTSIZE);
        }
    }
  • 相关阅读:
    第4章 Android移植环境搭建
    第3章 Android移植平台工具介绍
    第2章
    第1章 Android系统的编译和移植实例:
    nfs
    TFTP服务器搭建
    根系统制作
    nfs挂载
    uboot的编译
    交叉工具链的搭建方法
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4413853.html
Copyright © 2011-2022 走看看