Android之UI基础控件
原文地址http://www.javayihao.top/detail/46
一:view
Android中每个控件父类都是一个view,view代表屏幕上的一块空白区域,具体显示什么内容交个具体的控件显示,
比如这块区域处理文本内容的view就用控件TextView
二:控件通用属性
三:基础控件
处理文本的view——TextView
相当java中Swing包中的JLabel,但是功能更加强大,支持文本处理、支持html代码、文本样式处理、链接效果等,除了上面的通用的属性外,还有以下属性
android:text="@string/app_name"//内容 android:textColor="#fff"//文本颜色 android:textSize="30sp"//文本大小 android:lineSpacingMultiplier="2"//行倍距 android:lineSpacingExtra="20sp"//行距 android:singleLine="true"//单行显示 android:ellipsize="end"//三点省略位置 android:focusable="true"//设置焦点 android:focusableInTouchMode="true"//设置触摸时可获取焦点 android:marqueeRepeatLimit="marquee_forever"//设置跑马灯
被点击的view——Button
对于按钮主要是如何注册点击事件,方法有以下四种
-
自定义内部类
<Button android:id="@+id/login_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录"/>
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //获取按钮 Button login_btn =findViewById(R.id.login_btn); //按钮login_btn被点击时候的事件,使用自定义内部类实现 login_btnListener login_btnListener = new login_btnListener(); login_btn.setOnClickListener(login_btnListener) ;//注册事件监听器 } //自定义一个内部类实现点击事件接口 class login_btnListener implements View.OnClickListener{ @Override public void onClick(View v) { Log.e("tag","点击了login_btn按钮戳发了自定义事件"); } } }
-
匿名内部类
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Button login_btn =findViewById(R.id.login_btn); login_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.e("tag","点击了login_btn按钮戳发了自定义事件"); } }); } }
-
当前Activity去实现事件接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{//实现了点击事件接口 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Button login_btn =findViewById(R.id.login_btn); login_btn.setOnClickListener(this); } @Override public void onClick(View v) { Log.e("tag","点击了login_btn按钮戳发了自定义事件"); } }
-
在布局文件中添加点击事件属性
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="loginClik" android:text="登录"/>
public class MainActivity extends AppCompatActivity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); } public void loginClik(View v) {//定义xml中绑定的方法 Log.e("tag","点击了login_btn按钮戳发了自定义事件"); } }
处理图片的view——ImageView
用来现实和控制图像的控件,可以对他进行放大缩小旋转等,常见属性:
android:src="@mipmap/login"//指定前景资源名称
接收用户信息输入的View——EditText
用于输入文本内容的输入框,常用属性
android:inputType="textPassword"//文本框类型如number、text... android:hint="请输入密码"//文本框默认内容 android:maxLength="12"//设置文本长度
进度条类的view——ProgressBar
默认的进度条是一个没有刻度、圆形、只是一个不断旋转的动画效果,通过设置style可以显示水平带有刻度的进度条
style="?android:attr/progressBarStyleHorizontal"//设置滚动条样式,这里progressBarStyleHorizontal是水平 android:progress="30"//设置进度值 android:max="200"//设置进度条最大值 默认100 android:indeterminate="true"//设置一直滚动
如何实现滚动条加载,这个相对于xml而言,在java代码中实现比较容易
我们定义带有id的一个滚动条
<ProgressBar android:id="@+id/myProgress" android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" />
public class MainActivity extends AppCompatActivity{//实现了点击事件接口 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); final ProgressBar progressBar = findViewById(R.id.myProgress); //Android4.o之后不能在线程中直接操作控件 但是进度条是个特列 new Thread(){ @Override public void run(){ for (int i = 0; i < 100; i++) { progressBar.setProgress(i); try { Thread.sleep(30); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } }
文章首发地址:www.javayihao.top
文章首发公众号:java一号