2.3Button

Button继承自TextView,除了通过属性设置按钮样式,还可以通过绑定drawable文件的方式来实现不同样式。

2.3.1按钮样式

新建Activity:ButtonActivity,添加Layout视图:activity_button.xml.

activity_button.xml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp">
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="普通按钮"
android:textSize="20sp"
android:textColor="#ffffff"
android:background="#000000"
android:layout_marginTop="10dp"/>
<Button
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="圆角按钮"
android:textSize="20sp"
android:textColor="#ffffff"
android:background="@drawable/bg_btn1"
android:layout_below="@id/btn_1"
android:layout_marginTop="10dp"/>
<Button
android:id="@+id/btn_3"
android:layout_width="357dp"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_2"
android:layout_marginTop="10dp"
android:background="@drawable/bg_btn2"
android:text="描边按钮"
android:textColor="#ff9900"
android:textSize="20sp" />
<Button
android:id="@+id/btn_4"
android:layout_width="357dp"
android:layout_height="wrap_content"
android:layout_below="@+id/btn_3"
android:layout_marginTop="10dp"
android:background="@drawable/bg_btn3"
android:text="按压效果"
android:textColor="#ffffff"
android:textSize="20sp" /> </RelativeLayout>

通过如下方式添加drawable文件(复制粘贴普通xml文件由于路径不同会导致引用出现问题):

bg_btn1.xml(圆角按钮)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#ff9900"/>
<corners
android:radius="50dp"/>
</shape>

bg_btn2.xml(描边按钮)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#ff9900"/>
<corners
android:radius="15dp"/>
</shape>

bg_btn3.xml(按压效果)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#DBA047"/>
<corners android:radius="10dp"/>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<solid android:color="#FF9900"/>
<corners android:radius="10dp"/>
</shape>
</item>
</selector>

2.3.2点击事件

在Layout文件的32行做如下改动,绑定showToast事件:

         android:text="描边按钮+点击1"
33 android:onClick="showToast"

来到Activity文件为此事件进行详细描述:

public void showToast(View view){
Toast.makeText(this,"btn3",Toast.LENGTH_SHORT).show();
}

或者也可以使用第二种方法实现点击,修改Layout文件42行为:

 android:text="按压效果+点击2"

因为此点击事件绑定了按钮4,btn4,来到Activity文件定义私有变量mBtn4,完善事件描述:

private Button mBtn4;

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
mBtn4 = findViewById(R.id.btn_4);
mBtn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ButtonActivity.this,"btn4",Toast.LENGTH_SHORT).show();
}
});
}

最后效果:

2.4EditText

同Button一样,继承自TextView。接下来通过制作一个登录界面的方式来学习。

打开MainActivity增加私有控件mBtnEditText:

private Button mBtnEditText;

在onCreate里补全内容,绑定EditTextActivit,跳转至activity_edit_text.xml。

mBtnEditText = findViewById(R.id.btn_edittext);
mBtnEditText.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//跳转到EditText演示界面
Intent intent = new Intent(MainActivity.this,EditTextActivity.class);
startActivity(intent); }
});

同时,在首页增加一个导向此页面的按钮:

<Button
android:id="@+id/btn_edittext"
android:layout_width="match_parent"
android:layout_height="61dp"
android:text="EditText"
android:textAllCaps="false"/> //加了一个属性:默认不全显示大写

activity_edit_text.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"> <EditText
android:id="@+id/et_1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="19dp"
android:background="@drawable/bg_username" //新建Drawable resourse file,给文字处设置一个圆角线框。
android:hint="手机号" //添加导引文字。
android:inputType="number" //此处说明了输入内容的类型,由于是手机号,所以默认为数字(见效果图),还有其他效果,可以自己尝试
android:paddingLeft="10dp" //图标左侧与边框的距离。
android:textColor="#000000"
android:textSize="16sp"
android:drawableLeft="@drawable/icon_user" //在“手机号”前加一个小图标。
android:drawablePadding="8dp" //设置图标与文字之间的间距。
android:maxLines="1"/> //设置最大行数。
<EditText
android:id="@+id/et_2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:textSize="16sp"
android:textColor="#000000"
android:hint="密码"
android:inputType="textPassword" //同样,设置输入内容的类型为密码,所以输入完成后为暗文(见效果图)
android:layout_below="@id/et_1"
android:layout_marginTop="15dp"
android:background="@drawable/bg_username"
android:paddingLeft="10dp"
android:drawableLeft="@drawable/icon_psw"
android:drawablePadding="8dp"
android:maxLines="1" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/et_2"
android:layout_marginTop="40dp"
android:background="@drawable/bg_login"
android:textColor="#fff"
android:text="登录"
android:textSize="18sp"/> </RelativeLayout>

最后,在EditTextActivity为”登录“按钮添加绑定的点击事件。

增加私有控件:

private Button mBtnLogin;

完善信息:

mBtnLogin = findViewById(R.id.btn_login);
mBtnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(EditTextActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();
}
});

效果图:

在手机号一行默认输入数字;密码为暗文;点击登录后跳出登录成功的提示。

安卓开发:UI组件-Button和EditText的更多相关文章

  1. iOS开发UI篇—Button基础

    iOS开发UI篇—Button基础 一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状 ...

  2. Android经常使用UI组件 - Button

    button(Button)是Android其中一个经常使用的UI组件.非常小可是在开发中最经常使用到.一般通过与监听器结合使用.从而触发一些特定事件. Button继承了TextView.它的功能就 ...

  3. 推荐使用Tiny Framework web开发UI组件

    TINY FRAMEWORK 基于组件化的J2EE开发框架,from:http://www.tinygroup.org/   名字 Tiny名称的来历 取名Tiny是取其微不足道,微小之意. Tiny ...

  4. 微信小程序开发UI组件

    第一  view和input和button组件 1.UI组件的通用属性 (1)id       唯一标识 (2)class  设置组件的样式类 (3)style 设置组件的内联样式 (4)hidden ...

  5. UI 组件 | Button

    最近在与其他自学 Cocos Creator 的小伙伴们交流过程中,发现许多小伙伴对基础组件的应用并不是特别了解,自己在编写游戏的过程中也经常对某个属性或者方法的用法所困扰,而网上也没有比较清晰的用法 ...

  6. iOS开发UI篇——Button基础

    一.简单说明 一般情况下,点击某个控件后,会做出相应反应的都是按钮 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置 二.按钮的三种状态 1. normal(普通状态) ...

  7. 安卓开发 UI入门

    布局的类型 线性布局 LinearLayout ***  垂直显示 vertical 水平显示 horizontal 文本适应 wrap_content 填充父窗体 match_parent 权重 l ...

  8. [deviceone开发]-UI组件的动画示例

    一.简介 自定义组件模版(头部,按钮,加减数量,加载,底部弹出,开关(文字/无文字),选项卡(2-4), radio)全部带自定义动画效果,需从组件商店中添加:do_Animator组件 二.效果图 ...

  9. Android开发8:UI组件TextView,EditText,Button

    版本:Android4.3 API18 学习整理:liuxinming TextView 概述 TextView直接继承了View(EditText.Button两个UI组件类的父类) TextVie ...

随机推荐

  1. [Swift]LeetCode153. 寻找旋转排序数组中的最小值 | Find Minimum in Rotated Sorted Array

    Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...

  2. [Swift]LeetCode699. 掉落的方块 | Falling Squares

    On an infinite number line (x-axis), we drop given squares in the order they are given. The i-th squ ...

  3. [Swift]LeetCode945. 使数组唯一的最小增量 | Minimum Increment to Make Array Unique

    Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1. Return ...

  4. 一个std::sort 自定义比较排序函数 crash的分析过程

    两年未写总结博客,今天先来练练手,总结最近遇到的一个crash case. 注意:以下的分析都基于GCC4.4.6 一.解决crash 我们有一个复杂的排序,涉及到很多个因子,使用自定义排序函数的st ...

  5. 8.Django缓存和信号

    缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将某个views的返回值保存至内存或者memcache中, ...

  6. redis 系列20 服务器下

    二. serverCron函数 2.3 更新服务器每秒执行命令次数 serverCron函数中的trackOperationsPerSecond函数会以每100毫秒一次的频率执行,这个函数以抽样计算的 ...

  7. Linux基础知识第九讲,linux中的解压缩,以及软件安装命令

    目录 Linux基础知识第九讲,linux中的解压缩,以及软件安装命令 一丶Linux Mac Windows下的压缩格式简介 2.压缩以及解压缩 3.linux中的软件安装以及卸载 1.apt进行安 ...

  8. linux rsync 实际应用

    linux rsync 实际应用 一.rsync的概述 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和 ...

  9. ASP.NET Core多环境配置文件问题

    前言 在我们开发的过程中,往往会有这几个环境,Dev.QA.Pre和Pro. 当然不同的环境可能大家的叫法会有点不一样. 最常遇到的问题,或许就是不同环境的配置文件问题! 一个环境一个配置文件是很常见 ...

  10. Magicodes.WeiChat——使用OAuth 2.0获取微信用户信息

    使用Magicodes.WeiChat,可以很方便的获取到微信用户的信息.在使用OAuth 2.0之前,你先需要做以下操作: 1)在开发者中心修改[网页授权获取用户基本信息],在弹出的界面输入自己的根 ...