移动开发技术(Android)——实验4 Android常用基本控件(二)
- 一、实验目的
- 二、实验内容
- 1.单选按钮、复选框等控件
- 2.ImageView和透明度
一、实验目的
- 掌握图像视图、单选按钮、复选框控件的特点、类、所支持的常用XML属性及方法;
- 掌握在XML布局文件中添加图像视图、单选按钮、复选框控件的语法格式;
- 掌握获取单选按钮组选中项值、复选框选中项值的方法。
二、实验内容
1.单选按钮、复选框等控件
创建一个Android项目,项目名称为“shiyan0401_班级_×××(学生姓名)”,要求:
- 界面构成:
①5个文本框用于显示提示信息“姓名:”、“年龄”、“专业”、“爱好”、“信息显示”;
②2个编辑框分别用于接收学生的姓名和年龄;
③3个单选按钮用于专业选择(计算机科学与技术、软件工程、网络工程);
④n个复选框用于爱好选择(n>=3); ⑤2个普通按钮,文本分别显示为“录入”、“重置”; - 程序功能:
①单击“录入”按钮,将用户输入和选择的各项信息在“信息显示”文本框中显示;
②单击“重置”按钮,清空用户输入的信息;
布局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:columnCount="3"
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" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textSize="20dp" />
<EditText
android:id="@+id/name_ET"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="年龄"
android:textSize="20dp" />
<EditText
android:id="@+id/age_ET"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="专业"
android:textSize="15dp" />
<RadioGroup android:id="@+id/RadioGroup1" >
<RadioButton
android:id="@+id/radio_IOT"
android:text="物联网工程" />
<RadioButton
android:id="@+id/radio_jike"
android:text="计算机科学与技术" />
<RadioButton
android:id="@+id/radio_ruanjian"
android:text="软件工程" />
</RadioGroup>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="爱好"
android:textSize="20dp" />
<TableRow android:id="@+id/CB_TR" >
<CheckBox android:text="学习" />
<CheckBox android:text="跑步" />
<CheckBox android:text="看书" />
<CheckBox android:text="音乐" />
</TableRow>
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:gravity="center_vertical|center_horizontal"
android:text="信息显示区域" />
<TableRow>
<Button
android:id="@+id/submit_BT"
android:layout_weight="1"
android:text="录入" />
<Button
android:id="@+id/reset_BT"
android:layout_weight="1"
android:text="重置" />
</TableRow>
</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.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TableRow;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView show;
EditText name_ET,age_ET;
RadioGroup dep ;
CheckBox hobby_CB;
TableRow CB_TR;
String name,age;
String department="";
String hobby="";
Button sb_BT,rs_BT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name_ET=(EditText) findViewById(R.id.name_ET);
age_ET=(EditText) findViewById(R.id.age_ET);
dep = (RadioGroup) findViewById(R.id.RadioGroup1);
dep.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
RadioButton r;
if(checkedId!=-1){
r = (RadioButton) findViewById(checkedId);
department=r.getText().toString();
}else{
department="";
}
}
});
CB_TR=(TableRow) findViewById(R.id.CB_TR);
sb_BT=(Button) findViewById(R.id.submit_BT);
rs_BT=(Button) findViewById(R.id.reset_BT);
show=(TextView) findViewById(R.id.show);
sb_BT.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
hobby="";
name=name_ET.getText().toString();
age=age_ET.getText().toString();
for(int i=0;i<CB_TR.getChildCount();i++){
CheckBox c = (CheckBox) CB_TR.getChildAt(i);
if(c.isChecked()){
hobby+=c.getText().toString()+" ";
}
}
show.setText(name+" "+age+" "+department+" "+hobby);
}
});
rs_BT.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
name_ET.setText("");
age_ET.setText("");
dep.clearCheck();
for(int i=0;i<CB_TR.getChildCount();i++){
CheckBox c = (CheckBox) CB_TR.getChildAt(i);
c.setChecked(false);
}
show.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.ImageView和透明度
创建一个Android项目,项目名称为“shiyan0402_班级_×××(学生姓名)”,要求:
- 界面构成:
①1个ImageView用于显示图片;
②4个按钮,文本分别显示为“下一张”、“上一张”、“透明度降低”、 “透明度增加”; - 程序功能:
①单击“下一张”按钮,ImageView中显示下一张图片;
②单击“上一张”按钮,ImageView中显示上一张图片;
③单击“透明度降低”按钮,ImageView中图片的透明度降低;
④单击“透明度增加”按钮,ImageView中图片的透明度增加。
首先需要在res文件夹下的drawable文件夹里存放几张图片
直接在eclipse中粘贴到drawable文件夹下即可(其他编译器同理)
图片不宜过大,几百KB为宜
根据分辨率不同drawable有好几个文件夹
由于我们不考虑不同分辨率场景下的情况
将图片放在任何一个drawable文件夹下即可
布局xml代码.................
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/IamgeView1"
android:layout_width="wrap_content"
android:layout_height="300dp"
android:src="@drawable/image1" />
<Button
android:id="@+id/last"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="上一张" />
<Button
android:id="@+id/next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="下一张" />
<Button
android:id="@+id/toumingdu_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="透明度-" />
<Button
android:id="@+id/toumingdu_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="透明度+" />
</TableLayout>
Java代码.................
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView iv;
Button last,next,tmd_up,tmd_down;
int image[]={R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4};
int currentImage=0;
int current_al=255;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.IamgeView1);
last=(Button) findViewById(R.id.last);
next=(Button) findViewById(R.id.next);
tmd_up=(Button) findViewById(R.id.toumingdu_up);
tmd_down=(Button) findViewById(R.id.toumingdu_down);
last.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(currentImage==0)
currentImage=4;
iv.setImageResource(image[--currentImage]);
}
});
next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
iv.setImageResource(image[++currentImage%image.length]);
}
});
tmd_up.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
current_al=current_al-5;
iv.setAlpha(current_al);
}
});
tmd_down.setOnClickListener(new OnClickListener() {
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
current_al=current_al+5;
iv.setAlpha(current_al);
}
});
}
@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;
}
}