java 自定义控件_自定义控件的开发
很多时候,android提供的组件并不能满足我们的需求,于是我们不得不按需求开发自定义控件。
Step 1.
写好自定义控件的内部布局文件。
android:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:paddingBottom="5dip"android:paddingLeft="40dip"android:paddingTop="5dip"android:src="@drawable/confirm" />
android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginLeft="8dip"android:text="确定"android:textColor="#000000" />
Step 2:
写好自定义的控件类并继承LinearLayout,并写好相关方法,用于控制自定义控件的内容。
packageorg.hjw.mybutton;importandroid.content.Context;importandroid.util.AttributeSet;importandroid.view.LayoutInflater;importandroid.widget.ImageView;importandroid.widget.LinearLayout;importandroid.widget.TextView;public class my extendsLinearLayout {privateImageView image;privateTextView text;publicmy(Context context, AttributeSet attrs) {super(context, attrs);
LayoutInflater ll=(LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ll.inflate(R.layout.my_button,this);
image=(ImageView) findViewById(R.id.image);
text=(TextView) findViewById(R.id.text);
}public void setImage(intResid) {
image.setImageResource(Resid);
}public voidsetText(String ext) {
text.setText(ext);
}
}
Step3:
需要使用自定义控件时,只需要在xml文件中加入即可,这里我们在主布局文件中加入。
android:background="@drawable/bg_button"
/>
Step 4:
为了使用户体验效果更好,可以加入背景图片的变化效果。
Step 5:
最后在主Activity中像使用其他控件一样使用此控件。
package org.hjw.mybutton;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
private my My, My2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
My = (my) findViewById(R.id.myButton1);
My2 = (my) findViewById(R.id.myButton2);
My2.setImage(R.drawable.cancel);
My2.setText("取消");
My.setImage(R.drawable.confirm);
My.setText("确定");
My.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "You just clicked!", 1)
.show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Step 6:
我们看看效果吧。
╭︿︿︿╮ {/ o o /} ( (oo) ) ︶ ︶︶
java 自定义控件_自定义控件的开发相关推荐
- java 制作自定义控件_自定义控件的三种方式
文章转载于https://blog.csdn.net/fictionss/article/details/78285167 原生控件,自己绘制和继承原生控件. 1.组合原生控件 将自己需要的控件组合起 ...
- idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
IDEA全称为IntelliJ IDEA,主要用于以Java语言开发为基础的集成环境,也可以用于诸如html5之类与Java Web系列相关的语言或框架开发:IntelliJ IDEA在编写代码时有一 ...
- java 车联网_车联网V2X开发
最近在做一些车联网V2X 开发的工作,涉及用到开源的欧标CAM 和 DENM,在这里记录一下. CAM 和 DENM 是车辆通信数据的协议栈,属于欧标,其中有两个开源的项目可以参考: Java工程:h ...
- editplus java语法_用Editplus开发Java
原标题:用Editplus开发Java ☆ 准备工作 ①,已安装好jdk,同时配置系统变量(3个,JAVA_HOME,PATH,CLASSPATH) ②,电脑已安装Editplus,并做好设置. ☆ ...
- eclipse选择java版本_使用 Eclipse 开发版本选择和下载说明
现在越来越多的人开发使用 IDEA,使用 Eclipse 开发的已经渐渐变少了,这篇就简单介绍下 Eclipse 的版本选择和下载,供目前还在坚守使用 Eclipse 开发的同胞们~ Eclipse ...
- android开发java环境_搭建Android开发环境 - Android - mobile - JavaEye论坛
Android的开发现在是如火如荼,逞现在不是很忙了,学习了下,这里记录下了在windows在如何搭建Android开发环境,对自己是个记录,对新入门的兄弟姐妹们可以参考一下! (1)安装JDK,省略 ...
- eclipse开发java项目_用eclipse 开发java 项目
一般分为如下4个步骤: 一.创建Java项目(创建项目之前要选择工作空间) 二.创建程序包 三.编写Java源程序 四.运行Java程序 详细说明 1.创建Java 项目 1.1 打开Eclipse, ...
- 电信JAVA手机_手机modem开发(28)—开发电信VoLTE开关默认值设置
电信VoLTE开关默认值设置 [Important Notice]CT VoLTE配置文档名称为<Operator_Specific_Document_CT入库版本准备.docx>,如贵司 ...
- JAVA窗帘_利用TurniBit开发板DIY一套自动窗帘模拟系统
一.准备工作TurnipBit 开发板 一块 下载数据线 一条 微型步进电机(28BYJ-48) 一个 步进电机驱动板(ULN2003APG) 一块 光敏传感器 一个 TurnipBit 扩展板 一块 ...
- anychart java实例_在.Net开发中使用AnyChart的简单例子(上)
1.AnyChart控件相关 显示效果 2.AnyChart的简单原理 AnyChart是一个Flash做的控件,原理图在安装了AnyChart后的说明文档里面有,这里贴一下 其实很好理解,就是想办法 ...
最新文章
- 小伙在某知名公司的Python面试题详解,希望对各位以后面试有帮助
- 如何异地加载 Spring Boot 配置文件?
- Vue的表单组件之复选框
- 车品觉 | 大数据的价值:找到别人的“集体智慧”
- ITK:用颜色标记图像中的区域
- python学习日记(匿名函数)
- 【Mac】mac安装go
- 4.15Day20加密模块,表格操作模块
- 360云服务器合作,360云主机速度(云服务器)
- 职场7条小tips,一定有一条说到你心坎里
- 粒子滤波的通俗解释,傻子的搜寻策略--我的理解_拔剑-浆糊的传说_新浪博客
- 【ctfshow】- web189
- c语言万年历怎么加节日,C语言万年历
- 如何进行英文文献检索
- 为什么Windows系统磁盘盘已使用空间大小与磁盘中总文件大小不符?
- html标识标志相关符号
- 博客园自定义背景图片
- Solr搜索引擎 — 中文全拼简拼分词
- YSO小游戏·VB6版代码
- 《解忧杂货店》读书笔记