带文字的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 = ;
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()/, (canvas.getHeight()/)+, 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=""/>
<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="" />
</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);
}
}
带文字的ImageButton[自定义]的更多相关文章
- Android实现自定义带文字和图片的Button
Android实现自定义带文字和图片的Button 在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就 ...
- 【Android】Android实现自定义带文字和图片的Button
在Android开发中经常会需要用到带文字和图片的button,下面来讲解一下常用的实现办法. 一.用系统自带的Button实现 最简单的一种办法就是利用系统自带的Button来实现,这种方式代码量最 ...
- Android开发学习之路-带文字的图片分享
有用过微信分享SDK的都应该知道,微信分享到朋友圈的时候是不能同时分享图片和文字的,只要有缩略图,那么文字就不会生效.那么问题就来了,如果我们想把APP内的某些内容连带图片一起分享到微信,是不是没办法 ...
- wing带你玩转自定义view系列(2) 简单模仿qq未读消息去除效果
上一篇介绍了贝塞尔曲线的简单应用 仿360内存清理效果 这一篇带来一个 两条贝塞尔曲线的应用 : 仿qq未读消息去除效果. 转载请注明出处:http://blog.csdn.net/wingicho ...
- wing带你玩转自定义view系列(1) 仿360内存清理效果
本篇是接自 手把手带你做自定义view系列 宗旨都是一样,带大家一起来研究自定义view的实现,与其不同的是本系列省去了简单的坐标之类的讲解,重点在实现思路,用简洁明了的文章,来与大家一同一步步学习. ...
- 用POP动画编写带富文本的自定义动画效果
用POP动画编写带富文本的自定义动画效果 [源码] https://github.com/YouXianMing/UI-Component-Collection [效果] [特点] * 支持富文本 * ...
- [原创]java WEB学习笔记42:带标签体的自定义标签,带父标签的自定义标签,el中自定义函数,自定义标签的小结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- phpqrcode生成带logo的二维码图片及带文字的二维码图片
<?php require_once "./phpqrcode/phpqrcode.php"; /** * 这样就可以生成二维码了,实际上在png这个方法里还有几个参数需要使 ...
- 带你体验Android自定义圆形刻度罗盘 仪表盘 实现指针动态改变
带你体验Android自定义圆形刻度罗盘 仪表盘 实现指针动态改变 转 https://blog.csdn.net/qq_30993595/article/details/78915115 近期有 ...
随机推荐
- magento 常用方法集锦
1,获得store的配置变量 Mage::getStoreConfig('sectionname/groupname/fields'); 1 Mage::getStoreConfig('section ...
- ios8地图开发的报错
报错如下:Trying to start MapKit location updates without prompting for location authorization. Must call ...
- C#多线程(一) 入门
本文你会了解如下内容: 1.计算机程序.进程.线程的概念 2.多线程的概念.为什么需要多线程.多线程的好处与坏处 3.C# 线程的一些概念与操作(创建线程.像线程中传递参数.给线程取名.前后台线程.线 ...
- Mybatis-generator使用和扩展
Mybatis-generator使用和扩展 mybatis-generator使用 pom.xml配置 <plugin> <groupId>org.mybatis.gener ...
- Codevs 5208 求乘方取模
5208 求乘方取模 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 未定级 题目描述 Description 给定非负整数A.B.M,求(A ^ B) mod M. 输入描述 Inpu ...
- bzoj1007:[HNOI2008]水平可见直线
思路:首先按斜率排序,如果斜率相同就取截距最大的,显然截距小的会被覆盖而对答案没有贡献,然后考虑斜率不同的如何统计答案,可以用一个单调栈维护,当前新插入的直线显然斜率是要比当前栈顶斜率要大的,然后如果 ...
- Android清空画布
public void clear() { Paint paint = new Paint(); paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR ...
- ASP.NET服务端基本控件介绍
ASP.NET服务端基本控件介绍 大概分为三种控件: HTML控件,ASP.NET把HTML控件当成普通字符串渲染到浏览器端,不去检查正确性,无法在服务端进行处理ASP.NET服务端控件,经过ASP. ...
- svn 日志 offline 错误
http://zhidao.baidu.com/question/200406861.html (转) #anon-access = read anon-access = none #把read改成n ...
- 常用命令su ls cp cd mv cat touch mkdir rm head less more pwd tac 等
1.用户切换 su:switch user su kevin //半切换,切换到kevin用户,但是不读取kevin用户的配置文件 su - kevin //完全切换,执行这个命令的时候表示切 ...