android入门到熟练(三)----UI界面

1.TextView

以下只是一部分属性,还有很多属性需要在用到时候再说

<TextView

android:textSize="24sp"//文字大小
android:textColor="#00ff00"//文字颜色
android:gravity="center"//排列方向
android:id="@+id/txtMainOne"
android:text="这是一个正规的活动界面"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

2.Button

<Button
android:id="@+id/btnMainOne"
android:text="按钮"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

在java代码中给按钮添加事件可以统一处理,方法是让类去实现接口View.OnClickListener

public class MainActivity extends Activity implements View.OnClickListener {

//在onCreate方法中绑定按钮的监听事件为类本身

Button btnMainOne=(Button)findViewById(R.id.btnMainOne);
btnMainOne.setOnClickListener(this);

//其他代码。。。。。。以下是对点击按钮的集中处理方式

@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.btnMainOne:
//编写逻辑
break;
default:
break;;
}
}

3.EditText

<EditText
android:id="@+id/txtMainTwo"
android:hint="起到提示信息的作用"
android:maxLines="2"//限制文本输入框只有2行,不会因为内容过多而出现控件无限拉长
android:layout_width="match_parent"
android:layout_height="wrap_content" />

//获取EditText 中的值

EditText txtMainTwo=(EditText)findViewById(R.id.txtMainTwo);
String value=txtMainTwo.getText().toString();
Toast.makeText(MainActivity.this,value,Toast.LENGTH_SHORT).show();

4.ImageView

<ImageView
android:id="@+id/imgMainOne"
android:src="@drawable/ic_launcher"//图片地址
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

ImageView imageView=(ImageView)findViewById(R.id.imgMainOne);
imageView.setImageResource(R.drawable.one);//修改图片

5.ProgressBar显示进度

<ProgressBar

android:visibility="visible"//所有空间都有这个熟悉,visible,invisible和gone,分别表示显示空间,隐藏控件但是占用位置,直接删除控件
android:id="@+id/pgbMainOne"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"//设置为横向表现
android:background="#ff5b7fff"//背景颜色
android:max="100"/>//最大值

代码控制显示

ProgressBar progressBar=(ProgressBar)findViewById(R.id.pgbMainOne);
if(progressBar.getVisibility()==View.GONE)
{
progressBar.setVisibility(View.VISIBLE);
}
else
{
progressBar.setVisibility(View.GONE);
}

//设置进度条

int progress=progressBar.getProgress();
progress+=10;
progressBar.setProgress(progress);

6.AlertDialog

AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("提示信息");
dialog.setMessage("很重要的信息");
dialog.setCancelable(false);
dialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

}
});
dialog.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

}
});
dialog.show();

7.ProgressDialog

结合多线程展示

final ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);
progressDialog.setTitle("提示");//设置标题
progressDialog.setCanceledOnTouchOutside(false);//是否在空白处点击返回主界面
progressDialog.setMax(100);//设置为横向进度条最大值
progressDialog.setMessage("提示内容信息");//提示内容
progressDialog.setCancelable(false);//是否选择取消键返回
progressDialog.setProgress(40);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置为横向进度
progressDialog.setIcon(R.drawable.one);//设置图标
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定",new DialogInterface.OnClickListener() {//添加按钮事件
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this,"按下按钮",Toast.LENGTH_LONG).show();
}
});
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

}
});
progressDialog.show();//显示
new Thread(new Runnable() {//创建多线程
@Override
public void run() {
// TODO Auto-generated method stub
int i = 0;
while (i < 100) {
try {
Thread.sleep(200);
// 更新进度条的进度,可以在子线程中更新进度条进度
progressDialog.incrementProgressBy(1);//设置进度条增加值
// dialog.incrementSecondaryProgressBy(10)//二级进度条更新方式
i++;

} catch (Exception e) {
// TODO: handle exception
}
}
progressDialog.dismiss();//在进度条走完时删除progressDialog

}
}).start();//启动多线程

8.布局:常用的4种布局LinearLayout,RelativeLayout,FrameLayout

LinearLayout:线性布局方式,android:orientation="vertical"表示竖向排列,android:orientation="horizontal"表示横向排列

android:layout_gravity="right"//设置控件的位置,当是横向的时候只能设置竖向的位置,当为竖向的时候只能设置横向的位置。

当设置android:orientation="horizontal"时可以设置控件的宽度是0:android:layout_width="0dp",然后设置宽度上的权重android:layout_weight="1"表示占用的比例

RelativeLayout:相对位置布局,可以设置对应的属性设置相对于父元素的坐标或者某个控件的坐标

相对于父元素

layout_alignParentLeft

layout_alignParentTop

layout_alignParentRight

layout_centerInParent

layout_alignParentBottom

相对于某个控件

android:layout_above="@+id/btnBThree"//相对于某个控件的上方

android:layout_below="@+id/btnBThree"//相对于某个空间的下方
android:layout_toLeftOf="@+id/btnBThree"
android:layout_toRightOf="@+id/btnBThree"
android:layout_toStartOf="@+id/btnBThree"
android:layout_toEndOf="@+id/btnBThree"

android:layout_alignBottom="@+id/btnBThree"
android:layout_alignTop="@+id/btnBThree"
android:layout_alignRight="@+id/btnBThree"
android:layout_alignLeft="@+id/btnBThree"
android:layout_alignEnd="@+id/btnBThree"
android:layout_alignStart="@+id/btnBThree"

FrameLayout:所有的控件都会在左上角定位,会出现重叠现象,不常用,但是在碎片的章节将会出现

TableLayout:允许以表格的方式排列控件,不常用。

9.自定义控件

先设计一个layout文件,然后再别的页面引入已经设计好的界面:<include layout="@layout/title"/>

如果是自定义控件:先定义一个类继承至LinearLayout,在构造函数中编写该类的事件

public class TitleLayout extends LinearLayout {

public TitleLayout(Context context,AttributeSet attrs)
{
super(context,attrs);
LayoutInflater.from(context).inflate(R.layout.title,this);

Button btnTitleOne=(Button)findViewById(R.id.title_back);
btnTitleOne.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
((Activity)getContext()).finish();//找到当前所在活动
}
});

Button btnTitleTwo=(Button)findViewById(R.id.title_edit);
btnTitleTwo.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(getContext(),"你选择了编辑按钮",Toast.LENGTH_SHORT).show();
}
});
}
}

开始使用该用户控件

<com.example.zhb.test2.TitleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"></com.example.zhb.test2.TitleLayout>

时间: 2024-10-11 18:57:50

android入门到熟练(三)----UI界面的相关文章

Android研究之动态创建UI界面详解

 Android的基本UI界面一般都是在xml文件中定义好,然后通过activity的setContentView来显示在界面上,这是Android UI的最简单的构建方式.其实,为了实现更加复杂和更加灵活的UI界面,往往需要动态生成UI界面,甚至根据用户的点击或者配置,动态地改变UI,本文即介绍该技巧.对事件和进程的可能安卓设备实现触摸事件的监听,跨进程 假设Android工程的一个xml文件名为activity_main.xml,定义如下: 1 2 3 4 5 6 7 8 9 10 11

Android之十二微信UI界面设计

Android之十二微信UI界面设计 corners_bg.xml <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color=&qu

Android开发1:基本UI界面设计——布局和组件

前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望能在学习中和各位共同探讨,一起交流,共同进步~ 话不多说,首先进入我们的正题~Android开发一基本UI界面设计——布局和组件(Android Studio的配置安装使用等在以后为各位补上~) 基础知识 Android的组件分为布局和控件.布局,就是让控件在里面按一定的次序排列好的一种组件,本身并

Android Studio 图形化设计 UI 界面

我们开发 Android 程序必定是从 UI 开始的 ,使用最新版的 Android Studio 可以在图形化界面下设计软件 UI, Android Studio 默认的布局是 ConstraintLayout 通过拖动可以快捷的将我们想要的文字.图片.输入框放到界面中 通过各种国定对齐方式可以方便的设计程序 UI ,并让界面适应不同的屏幕大小 其中值得注意的是,魔法棒按钮可以智能的固定已有的组件,十分方便 一般用好辅助线和边界线就可以设计出比较整齐的界面来 原文地址:https://www.

android入门到熟练(一)

1.andro系统架构:Linux内核层(提供驱动),系统运行库层和android运行时库(提供C/C++库的主要特性,如SQLite,OpenGL,Webkit等和Dalvik虚拟机),应用框架层,应用层. 2.android四大组件:活动(Activity界面能看到的一切).服务(Service后台运行即使用户退出了应用也会继续运行).广播接收器(BroadcastReceiver可以接收外来广播消息)和内容提供器(Content Provider使程序与程序之间共享数据成为可能). 3.项

android入门到熟练(二)----活动

1.活动创建对于每一个后端java类(继承至Activity或者ActionBarActivity)代码都有一个方法需要被重写[onCreate], 在此方法中可以加载界面资源文件或者绑定元素事件. protected void onCreate(final Bundle savedInstanceState)//一般savedInstanceState为null,除非在返回界面时已经加载了值. 此处展示savedInstanceState不为空的时候获取其中保存的临时数据填充界面 if(sav

Android Studio 屏幕方向以及UI界面状态的保存

package com.example.orientation; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity ext

android入门到熟练(五)---广播

1.广播类型:标准广播和有序广播.标准广播是异步广播在广播发出之后所有接收器几乎会同一时刻接收到,没有先后顺序,效率高,但无法被截断.有序广播则是同步广播,同一时刻只能一个接收器接收这条消息,等执行完毕后才会继续传递,优先级高的接收器可以先接受,并且可以截断该广播传递. 动态注册案例分析:网络变化提醒 构建响应类: class  NetworkChangeReciver extends BroadcastReceiver{         @Override         public voi

控制UI界面

在android中,一共有四种方式. 第一种:使用XML布局文件控制UI界面 关键步骤有2个: 1.在Android应用的res/layout目录下编写,创建一个项目,eclipse会自动生成一个xml文件.同时在gen/目录中会自动生成R.javaw. 2.在Activity中使用以下代码: setContentView(R.layout.activity_main); 第二种:使用Java代码来控制UI界面. 关键步骤如下: 1.创建布局管理器,可以是帧布局,表格布局,线性布局,相对布局,并