android 控件移动方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 控件移动方法相关的知识,希望对你有一定的参考价值。
1. 使用控件的layout 方法。可以改任意位置和大小,不受布局限制。 但是在使用 setText等方法之后,会导致 界面重新布局,控件会回到原来位置
[java] view plaincopyprint?
01.btnMove.layout(left, top, left + 80, top+50);
btnMove.layout(left, top, left + 80, top+50);
2. 使用控件的setLayoutParams 方法,改变布局参数。
很容易改大小,设置Height 和 Width 即可
改位置会受到布局限制。要改到任意位置的话,须将控件放置在 FrameLayout 中,并设置 android:layout_gravity="top"
[java] view plaincopyprint?
01.int left = btnMoveLayoutB.getLeft() + 50;
02.int top = btnMoveLayoutB.getTop() + 120;
03.
04.FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)btnMoveLayoutB.getLayoutParams();
05.params.setMargins(left, top, 3, 3);//改变位置
06.btnMoveLayoutB.setLayoutParams(params); 参考技术A Android控件位置都是自己设置的。
如果要控件放到任意位置,建议用RelativeLayout(相对布局)
然后给控件添加属性,把控件放到想要的位置
下面是相对布局中 控件能用到的属性。
属性值为true可false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
属性值必须为id的引用名
android:layout_below 在某元素的下方
android:layout_above 在某元素的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素右边缘对齐
属性值为具体的像素值班,如30dp
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的的距离
android:layout_marginRight 离某元素的右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
移动开发技术(Android)——实验3 Android常用基本控件
一、实验目的
- 掌握在XML文件中添加控件的语法格式;
- 掌握控件的常用通用属性;
- 掌握Java代码中获取控件的方法;
- 熟悉文本框、编辑框、普通按钮和图片按钮的常用属性和方法。
- 掌握Button和ImageButton点击事件实现的几种方式。
- 熟悉Toast的使用。
二、实验内容
1.信息登记
创建一个Android项目,项目名称为“shiyan0301_信息登记_学生姓名”,要求:
- 界面构成:7个文本框分别用于显示学生学号、姓名、性别,出生年月、专业班级、电子邮箱和登记信息;6个编辑框,分别用于输入学生学号、姓名、性别,出生年月、专业班级、电子邮箱;两个普通按钮“登记”和“重置”。
- 程序功能:
①单击“登记”按钮时,将用户输入的信息显示在一个登记信息文本框中;
②单击“重置”按钮时,清空编辑框中输入的信息。
布局xml代码.......................................
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:columnCount="3">
<TextView
android:id="@+id/num_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="学号" />
<EditText
android:id="@+id/num_ET"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/name_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名" />
<EditText
android:id="@+id/name_ET"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/sex_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别" />
<EditText
android:id="@+id/sex_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/birthday_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="出生年月" />
<EditText
android:id="@+id/birthday_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/class_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="专业班级" />
<EditText
android:id="@+id/class_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/mail_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电子邮箱" />
<EditText
android:id="@+id/mail_EV"
android:layout_columnSpan="2"
android:autoLink="email"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/information_TV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登记信息" />
<EditText
android:id="@+id/information_EV"
android:layout_columnSpan="2"
android:layout_gravity="fill_horizontal"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/register_BT"
android:text="登记"
android:layout_width="wrap_content"/>
<Button
android:id="@+id/request_BT"
android:text="重置"
android:layout_width="wrap_content"/>
</GridLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
EditText num,name,sex,birthday,department,mail,information;
Button register,request;
String String_num,String_name,String_sex,String_birthday,String_department,String_mail,String_information;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num=(EditText) findViewById(R.id.num_ET);
name=(EditText) findViewById(R.id.name_ET);
sex=(EditText) findViewById(R.id.sex_EV);
birthday=(EditText) findViewById(R.id.birthday_EV);
department=(EditText) findViewById(R.id.class_EV);
mail=(EditText) findViewById(R.id.mail_EV);
information=(EditText) findViewById(R.id.information_EV);
register=(Button) findViewById(R.id.register_BT);
request=(Button) findViewById(R.id.request_BT);
register.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String_num=num.getText().toString();
String_name=name.getText().toString();
String_sex=sex.getText().toString();
String_birthday=birthday.getText().toString();
String_department=department.getText().toString();
String_mail=mail.getText().toString();
information.setText(String_num+" "+String_name+" "+String_sex+" "+String_birthday+" "+String_department+" "+String_mail);
}
});
request.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num.setText("");
name.setText("");
sex.setText("");
birthday.setText("");
department.setText("");
mail.setText("");
information.setText("");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
2.用户登录
创建一个Android项目,项目名称为“shiyan0302_用户登录_学生姓名”,要求:
- 界面构成:2个文本框,分别用来显示“用户名:”、“密码:”;2个编辑框,分别用来输入用户名和密码信息,要求密码不能以明文方式显示;1个普通按钮“登录”。
- 程序功能:单击“登录”按钮时,应实现以下功能:
①判断用户名和密码输入不为空,若为空,则给出Toast提示信息;
②若用户名为学生自己的姓名,且密码为学生学号,则给出Toast提示信息“登录成功!”
③若用户名不是学生自己的姓名,或密码不是学生自己的学号,则给出Toast提示信息“用户名或密码错误”,并将编辑框清空。
④若输入错误次数超过3次,则退出程序。(提示,使用finish()方法)
布局xml代码.......................................
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill"
android:columnCount="2"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:stretchColumns="1"
tools:context=".MainActivity" >
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名" />
<EditText
android:id="@+id/userName_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 码" />
<EditText
android:id="@+id/passWord_ET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
</TableRow>
<Button
android:id="@+id/login_BT"
android:text="登录" />
<TextView
android:text="用户名:180000,密码:0302"
android:textSize="20sp" />
</TableLayout>
JAVA代码.......................................
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
EditText userName,passWord;
Button login;
String userName_St,passWord_St;
int num=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userName=(EditText) findViewById(R.id.userName_ET);
passWord=(EditText) findViewById(R.id.passWord_ET);
login=(Button) findViewById(R.id.login_BT);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
num++;
userName_St=userName以上是关于android 控件移动方法的主要内容,如果未能解决你的问题,请参考以下文章