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

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,稍后我补上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Native crash 处理案例分享

简介: Android Native crash 处理案例分享 1. 背景 目前 mPaas[1] Android使用Crash SDK对闪退进行的处理,CrashSDK 是 Android 平台上一款功能强大的崩溃日志收集 SDK,有着极高的崩溃收集率和完整、全面的崩溃日志信息,生成的日…

Mendix:低代码与无代码的异同点与用例

投稿 | Mendix 编辑 | 宋 慧 头图 | 付费下载于 IC photo 低代码和无代码应用开发都遵循着代码抽象化原则来实现建模的可视化。但基于这两种方法构建的应用在规模和类型却有着根本性的区别。 低代码与无代码的相同之处 低代码和无代码开发平台都无需编写代码就能构建软件应用…

解读:云原生下的可观察性发展方向

简介: 非常有幸参加了云原生社区Meetup北京站,有机会和众多业内的大牛一起讨论云原生相关的技术和应用,本次Meetup上我和大家分享了关于云原生下的可观察性相关的议题,本篇文章主要是视频的文字性总结,欢迎大家留言讨论…

android air flash,在Adobe Flash上​​触摸滚动Android上的Air

解决方案1:尝试用以下替换Math.max(Math.min(maxY, _startY offsetY), minY);:clamp(mouseY - _startY offsetY, minY, maxY);function clamp(original:Number, low:Number, high:Number):Number {return (original > high) ? high : (original &l…

一文读懂 Serverless,将配置化思想复用到平台系统中

简介: 搭建一个 aPaaS 平台是需要很长时间的,当然也可以基于一些公有云产品的 Serverless 方案实现现有系统的灵活性与扩展性,从而实现针对于不同客户的定制。 写在前面 在 SaaS 领域 Salesforce 是佼佼者,其 CRM 的概念已经扩展…

9.9 元福利价,解锁校园满分计划

移动云开发者社区致力于为广大开发者提供技术交流和能力输出,是移动云开发者交流汇聚地、移动云产品首席体验官工作台、移动云技术能力布道者讲台和移动云能力输出窗口。通过移动云开发者社区,在帮助移动云开发者用好云、好用云的同时,还可以…

亲历者说 | 完整记录一年多考拉海购的云原生之路

简介: 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是短时间内快速完成迁移。在不到 4 个月的时间里,考拉团队唯一考虑的是如何以最快的速度完成使命,云原生是我们选择的最合适的一条路。 前言 考拉海购的…

android 模拟器声音设置,使用android模拟器录制声音

我试图通过创建一个android应用程序来录制声音。 这里是代码:使用android模拟器录制声音这是辅助类package com.recorder;import java.io.File;import java.io.IOException;import android.media.MediaRecorder;import android.os.Environment;public class AudioRe…

为了一个HTTPS,浏览器操碎了心···

作者:轩辕之风O来源:编程技术宇宙 浏览器我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务…

深度 | 阿里云蒋江伟:什么是真正的云原生?

简介: 而今,云原生成了耳熟能详的热门词,似乎不提云原生就落伍了,加入 CNCF 也成了云厂商引以为傲的技术优势。 我们也看到各种云原生的定义,有来自 CNCF 的“微服务容器持续交付DevOps”,也有来自不同云厂…

媒体智能-淘宝直播流媒体互动实践 | D2 分享视频+文章

背景:今天给大家带来的分享主题是《媒体智能-淘宝直播流媒体互动实践》,内容分为5个部分,首先看看在淘宝直播的直播间里主播可以怎样给用户拜年;然后具体讲如何制作一个手势拜年的特效;接着介绍我们媒体智能整体的方案…

html的语义化面试题,前端面试题-HTML结构语义化

一、HTML语义化的背景HTML结构语义化,是近几年才提出来的,对比之前的 HTML 结构,大多是一堆没有语义的标签。用的最多的就是 DIVCSS,为了改变这种现状,开发者们和官方提出了 HTML结构语义化的概念,并且在 H…

从云网络时延看应用部署架构

简介: 介绍云网络时延的构成,并对其进行量化的分析,以及从云网络时延看不同应用对应的部署架构。 也简单的分析了5G时代对应用部署架构的影响和度量云网络时延的产品和工具。 在引出云网络时延这看起来比较专业的话题前,先看几个比…

mPaas 研发流程和线上运维介绍

简介: mPaas 研发流程和线上运维介绍 1. 背景 金融级移动开发平台 mPaaS[1](Mobile PaaS)为 App 开发、测试、运营及运维提供云到端的一站式解决方案,能有效降低技术门槛、减少研发成本、提升开发效率,协助企业快速搭…

html翻转切换div效果,图片翻转效果

图片翻转效果* { margin: 0; padding: 0;}ul { list-style-type: none;}body { font: 14px "Microsoft Yahei"; overflow-x: hidden; background-color: #2B2B2B; }h1 { width: 900px; margin: 40px auto 100px; font: 32px "Microsoft Yahei"; text-align…

市值突破3000亿,Fortinet发布2021Q2财报

Fortinet 近日发布了截至6月30日的2021财年第二季度财报。Fortinet 第二季度营收增长强劲,高达 8.01 亿美元,同比增长 30%。 截至美国时间2021年8月12日纳斯达克证券交易市场收盘,Fortinet公司股价达到309.33美元,市值达到505.2亿…

Apache Flink 在实时金融数据湖的应用

简介: 本文由京东搜索算法架构团队分享,主要介绍 Apache Flink 在京东商品搜索排序在线学习中的应用实践 一、背景 在京东的商品搜索排序中,经常会遇到搜索结果多样性不足导致系统非最优解的问题。为了解决数据马太效应带来的模型商品排序多…

写给小白的云计算入门科普

作者:小枣君来源:鲜枣课堂云计算介绍2006年8月9日,当时的谷歌首席执行官埃里克施密特(Eric Schmidt)在搜索引擎大会(SES San Jose 2006)上,首次提出了“云计算”(Cloud C…

input 没显示 html,html - 为什么我的input type =“submit”没有显示?

Closed. This question is off-topic. It is not currently accepting answers. Learn more。想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。两年前关闭。我想在标题上加一个按钮,但它没有显示出来,我想它在div下面。为什…

阿里云拨测:主动探测Web应用质量,助力提升用户体验

简介: 阿里云拨测是一种针对互联网应用(Web页面、网络链路等)进行应用性能和用户体验监测的服务,无需嵌码即可为云上用户提供开箱即用的企业级主动拨测式应用监测解决方案。 随着中国数字化经济的蓬勃发展,越来越多的企…