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]LeetCode210. 课程表 II | Course Schedule II

    There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prereq ...

  2. [Swift]LeetCode860. 柠檬水找零 | Lemonade Change

    At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you, and ...

  3. SCOI2019 退役记

    退役了.D2没有翻盘,愉快出队,文化课见. 19年4月14日:某校第一届的最后一名OIer退出竞赛. 留坑. 万一退役失败了呢

  4. 【Redis篇】Redis集群安装与初始

    一.前述   本文将单台节点不同端口模拟集群方式. 二.具体搭建 前提是安装好redis具体可参考http://www.cnblogs.com/LHWorldBlog/p/8463269.html 1 ...

  5. BBS论坛(三十)

    30.显示评论和添加评论功能完成 (1)apps/models.py class CommentModel(db.Model): __tablename__='comment' id=db.Colum ...

  6. java.net.SocketException: 权限不够

    java.net.SocketException: 权限不够 一切问题的根源都是缺乏常识  0.0.....背景:今天部署一个spring cloud服务,tanainaide 服务的端口为80,然后 ...

  7. 看懂Azure ML、Windows ML和ML.NET

    最新2018微软中国人工智能大会刚刚落下帷幕,对于.NET开发者,可能早已被眼花缭乱的微软家AI体系弄晕了.我特意整理了几张图,以示区别. Azure ML提供了大量认知API服务,外加一个机器学习的 ...

  8. 带着萌新看springboot源码02

    上一节讲到先创建maven项目,然后导入依赖,主配置类等步骤,现在来个快速创建一个springboot模板,不需要向上节那么繁琐. 1.快速创建springboot应用 IDEA---->fil ...

  9. C++中 引用&与取地址&的区别

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  10. 从无到有-在create-react-app基础上接入react-router、redux-saga

    搭建项目框架 新建项目 执行如下代码,用create-react-app来建立项目的基础框架,然后安装需要用到的依赖. $ npx create-react-app my-test-project $ ...