提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Android studio的布局部分(一)
前言
这篇文章是我学习Android studio布局的一点知识点整理方便大家及我以后想用可以直接复制源码
一、四大布局
1.1线性布局:android:layout_gravity:指定控件在布局中的对齐方式 1.2相对布局:android:layout_alignParentLeft、layout_alignParent Top等为控件的左右上下,具体的可以直接一个个试试,关于布局还是很简单的
二、常用的一些控件及使用方法
1.TextView 文本信息控件
<TextView
android:id="@+id/tv_response"//每个控件必须先写id
android:layout_width="wrap_content"//match为让当前控件大小与父布局大小一样,wrap为当前控件大小能包含里面文字即可
android:layout_height="wrap_content"
android:gravity="center"//指定文字对齐方式有多个不同的方式可用|同时指定多个方式
android:text="您好啊"
android:textSize="20sp"//文字大小为sp
android:textColor="@color/black"
android:textStyle="bold" />
2.Button 按钮控件
每当点击按钮就会执行onclick()方法
<Button
android:id="@+id/button_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button 1"/>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1=findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//在此处添加逻辑
Toast.makeText(FirstActivity.this,"你点击一下按钮",Toast.LENGTH_SHORT).show();;
}
});
或者
public class FirstActivity extends BaseActivity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = findViewById(R.id.button_1);
button1.setOnClickListener(this)
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
//添加点击以后的效果
break;
default:
break;
}
}
}
3.EditText控件
用于发短信,用户名登录等待操作
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Android:hint="请输入"//使用此属性为显示一段提示性文本
android:maxLines="2"//执行最大显示2行超过2行则需要滑动看
先通过findViewById()方法得到EditText实例,用按钮的点击调用EditText的getText()方法,然后用toString方法转成字符串,最后用Toast将输入显示出来
public class ActivityCollector{
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third_layout);
Button button1 = findViewById(R.id.button_1);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button_1:
//添加点击以后的效果
String inputText=editText.getText().toString();
Toast.makeText(ActivityCollector.this,inputText,Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
4.imageView控件
用于展示图片等操作
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image1"/>//用于换图片
先通过ImageView的setIamgeResource()方法将图片换成另外一张
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText editText;//先声明控件
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
editText = findViewById(R.id.edit_text);
imageView = findViewById(R.id.image_view);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
//此处添加当按钮按下后的逻辑步骤
imageView.setImageResource(R.drawable.dask);
break;
default:
break;
}
}
}
5.ProgressBar进度条控件
用于显示进度条等操作
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@android:attr/progressBarStyleHorizontal"//水平进度条
android:max="100"/>
先通过点击按钮,getVisibility()方法判断ProgressBar是否可见,如果可见将ProgressBar隐藏掉,如果不可见则显现,不断点击按钮,可以看到显示隐藏来回切换.
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
setContentView(R.layout.activity_main);
Button button =findViewById(R.id.button);
progressBar=findViewById(R.id.progress_bar);
button.setOnClickListener(this) ;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
//int progress=progressBar.getProgress();这三行是可以点击一次则更新进度条+10%
// progress=progress+10;
// progressBar.setProgress(progress);
if (progressBar.getVisibility()==View.GONE){
progressBar.setVisibility(View.VISIBLE);
}else {
progressBar.setVisibility(View.GONE);
}
break;
default:
break;
}
}
}
6.AlertDialog对话框
用于防止用户误删、警告等信息
先通过AlertDialog.Builder创建AlertDialog的实例,然后为对话框设置标题,内容,可否取消等属性,然后用色图Positive Button()方法为对话框确定按钮点击事件,调用setNegativeButton()方法设置取消按钮的点击事件,最后调用show()方法将对话框显示出来
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.button:
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is Dialog");
dialog.setTitle("Something important.");
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();
break;
default:
break;
}
}
}
7.ProgressDialog对话框
用于用户等待加载等信息
先通过构建ProgressDialog对象,然后为对话框设置标题,内容,可否取消等属性,最后通过调用show()方法将ProgressDialog显现出来
注意,在setCancelable()传入false,表示ProgressDialog不能通过back健取消掉,所以一定要做好控制,当数据加载完必须调用ProgressDialog的dismiss()方法关闭对话框,否则会一直存在.
@Override//弹出对话框形式,显示一个进度条
public void onClick(View v) {
switch (v.getId()){
case R.id.button:
ProgressDialog progressDialog=new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();
break;
default:
break;
}
}