带文字的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 近期有 ...
随机推荐
- desc跟asc
- ACM——圆柱体的表面积
lems 1092 圆柱体的表面积 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:2697 测试通过:414 ...
- java web -部署在linux
概述: 初次将java web项目部署到linux上, 还是很顺利的, 基本上没有什么错误. 步骤: 1, 安装jdk(官网中说了很清晰了),在linux上安装安装jdk, 不想windows那样, ...
- 最近整理的一些行列转换sql(有自己的,有别人的),留作记录
--case when 经典用法SELECT * FROM (SELECT 1 NUM, '奖项金额', SUM(CASE WHEN ...
- HDU 2501 Tiling_easy version(简单递推)
Tiling_easy version Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有 ...
- HDU 3442 Three Kingdoms(状态压缩 + BFS )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3442 题目大意:三国时期,刘备逃亡.给定一个最大为50*50的地图,刘备在地图中只能往4个方向走. 地 ...
- c++ 中的8种智能指针[转]
一.简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete.程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 ...
- LAMP 环境 快速安装
(一)安装Apache 1.下载安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum install zlib-devel -y wget http://m ...
- C++11中新特性之:initializer_list详解
C++11提供的新类型,定义在<initializer_list>头文件中. template< class T > class initializer_list; 先说它的用 ...
- php计算最后一次,第一次字符串出现位置
strpos($str, n) 首次,n在str第一次出现位置, strrpos($str, n) 最后一次,n在str最后一次出现位置 strripos区分大小写