http://blog.csdn.net/yanzi1225627/article/details/8633872

第二种方法也要新建一个图片+文字的xml布局文件,然后写一个类继承自LinearLayout。在主程序里实例化并设置相应参数。这种方式也是我最推荐的一种。

第一部分:myimgbtn_layout.xml

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:alpha="20"

android:background="#87CE"

android:orientation="vertical"

>

android:id="@+id/img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:paddingBottom="5dip"

android:paddingTop="5dip" />

android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FF6100"

android:textSize="30dip"

android:layout_gravity="center_vertical"/>

第二部分,与之布局相对应的MyImgBtn.java 文件:

package yan.guoqi.testimgbtn;

import android.content.Context;

import android.graphics.Color;

import android.util.AttributeSet;

import android.view.LayoutInflater;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

public class MyImgBtn extends LinearLayout {

private ImageView mImgView = null;

private TextView mTextView = null;

private Context mContext;

public MyImgBtn(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

LayoutInflater.from(context).inflate(R.layout.myimgbtn_layout, this, true);

mContext = context;

mImgView = (ImageView)findViewById(R.id.img);

mTextView = (TextView)findViewById(R.id.text);

}

/*设置图片接口*/

public void setImageResource(int resId){

mImgView.setImageResource(resId);

}

/*设置文字接口*/

public void setText(String str){

mTextView.setText(str);

}

/*设置文字大小*/

public void setTextSize(float size){

mTextView.setTextSize(size);

}

//     /*设置触摸接口*/

//    public void setOnTouch(OnTouchListener listen){

//        mImgView.setOnTouchListener(listen);

//        //mTextView.setOnTouchListener(listen);

//    }

}

第三部分,主布局main.xml:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="@drawable/main_background2">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

android:id="@+id/MyIBtn_1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:clickable="true"

android:focusable="true"

/>

第四部分,主程序:

package yan.guoqi.testimgbtn;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Toast;

public class TestImgBtnActivity extends Activity {

private MyImgBtn MyIBtn1 = null;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

MyIBtn1 = (MyImgBtn)findViewById(R.id.MyIBtn_1);

MyIBtn1.setImageResource(R.drawable.ic_launcher);

MyIBtn1.setText("欢迎光临");

MyIBtn1.setTextSize(24.0f);

//MyIBtn1.setOnTouch(new MyOnTouchListener());

MyIBtn1.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {

// TODO Auto-generated method stub

Toast.makeText(TestImgBtnActivity.this,

"您好",

Toast.LENGTH_SHORT)

.show();

}

});

}

}

这种方法很直观简单,与之第一种用Gallery方法而言更容易理解。就是自定义一个类,第一种方法虽然不用自定义类,但是Gallery相关的适配器配置和那个View相关的如果第一次会不大习惯。这种效果也不错,图就不贴了。尤其适合做那种背景是纯色,里面嵌套图片+文字。就是360手机安全卫士的主窗口,大家可以看下。应该就是为这种方式做的。美中不足的是,360手机安全卫士的主窗口里,你点击一下,背景会变。也就是说这还缺少个onTouchListener,稍后我补上。

android自定义图片+文字控件四种实现方法,Android自定义“图片+文字”控件四种实现方法之 二--------个人最推荐的一种...相关推荐

  1. Android 常见界面控件(ListView、RecyclerView、自定义View篇)

    Android 常见界面控件(ListView.RecyclerView.自定义View篇) 目录 3.3 ListView的使用 3.3.1 ListView控件的简单使用 3.3.2 常用数据适配 ...

  2. Android点击水波纹扩散效果整理(附带一个自定义的水波纹效果控件)

    很久很久没有写博客了,说来也有点惭愧.正好最近整理自己的项目工程目录,看到一些值得分享的控件,准备在之后的几篇博客中准备把它们陆续搬运上来. 这篇博客准备整理一下Android Material De ...

  3. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...

    AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...

  4. android+高仿+日历,Android开源的精美日历控件,热插拔设计的万能自定义UI

    UI框架应该逻辑与界面实现分离,该日历控件使用了热插拔的设计 ,简单几步即可实现你需要的UI效果,热插拔的思想是你提供你的实现,我提供我的插座接口,与自定义Behavior是一样的思想. 听说第一页无 ...

  5. Android 控件之RatingBar评分条(五星)自定义样式

    RatingBar的自定义效果 有时候android系统提供给我们的ratingbar效果并不达到我们的要求,这个时候就可以自定义自己喜欢的ratingbar. 从上面的效果可以看出,自定义这样的组件 ...

  6. android自定义控件(6)-详解在onMeasure()方法中如何测量一个控件尺寸

    今天的任务就是详细研究一下protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法.如果只是说要重写什么方法有什么 ...

  7. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

  8. SAP UI5 应用开发教程之六十四 - 基于 OData V4 的 SAP UI5 表格控件如何实现 filter(过滤) 和 sort(排序)功能试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  9. Android 图片裁剪功能实现详解(类似QQ自定义头像裁剪)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.51cto.com/1823534/808837 ...

最新文章

  1. linux运行jar文件
  2. linux系统vsftpd登陆慢卡怎么办
  3. TFS - Team Foundation Server 的安装记录
  4. 2021甘肃高考成绩查询时间几点,2021年甘肃高考成绩什么时候出来,今天几点钟出成绩可以查询...
  5. [vue] vue的is这个特性你有用过吗?主要用在哪些方面?
  6. 二进制、十进制、其他进制之间的转换
  7. var let const 区别
  8. Redis 处理客户端连接的一些内部实现机制
  9. poj 1655 Balancing Act(求树的重心)
  10. TYVJ1288 飘飘乎居士取能量块 -SilverN
  11. 攻防世界-Crypto-告诉你个秘密(键盘密码)-ISCC2017
  12. conda加速器mamba使用
  13. 领航优配|券商板块大幅走高,东方财富盘中涨超15%
  14. 高刷新率笔记本电脑将低刷新率显示器作为扩展屏
  15. jni调用java数组导致VM aborting,安卓程序莫名闪退
  16. imshow 显示图像(Matlab)
  17. 微软疑淡化邮件服务被黑事件;DOTA2 AI 2:0 完胜世界冠军
  18. English--七种句子成分概述
  19. 铁夫破词第二季总结(1)
  20. MongoDB-curd总结

热门文章

  1. 211高校博士生入住隔离宿舍,疫情防控下科研进度不能停!
  2. 【数学】和【物理】的差别
  3. 《人民日报》专访姚期智院士:AI是历史性的起跑线机遇
  4. java英文拼写检查并自动纠正
  5. java中ArrayList类的操作
  6. 数据结构实验之排序二:交换排序
  7. 数据结构实验之排序四:寻找大富翁
  8. Unity/UE读取OPC UA和OPC DA数据(UE4)
  9. 在淘宝,我们是这样衡量代码质量的
  10. 33个常见问题!超全Windows排查手册