『安卓』安卓开发基础-基本控件
1. Textview
显示文字,相当于 Panel。一般用来文本展示,继承自 android.view.View,在 android.widget 包中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| <TextView
android:id = "@+id/xxx" @+id/xxx表示新增控件命名为xxx
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/hello_world"
android:textSize="24sp"
android:textColor="#0000FF"
android:textStyle="normal"
android:gravity="center"
android:singleLine="true"
android:background=""
android:layout_margin="10dp" 同时设置四个方向的外边距
android:padding="30dp" 同时设置四个方向的内边距
android:gravity="bottom|right"
android:orientation="horizontal"
android:id="@+id/text1"
android:layout_toRightOf="@id/text1"
android:layout_below="@id/text1"
android:layout_toLeftOf="@id/text1"
android:layout_above="@id/text1"
android:layout_weight="2"
|
2. EditText
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| 输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。
android:id = "@+id/xxx" @+id/xxx表示新增控件命名为xxx
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/hello_world"
android:hint="hello_world"
android:textSize="24sp"
android:textColor="#0000FF"
android:textStyle="normal"
android:gravity="center"
android:singleLine="true"
android:password="true"
android:phoneNumber="true"
android:cursorVisible = "false"
android:layout_margin="10dp" 同时设置四个方向的外边距
android:padding="30dp" 同时设置四个方向的内边距
android:gravity="bottom|right"
android:orientation="horizontal"
android:id="@+id/text1"
android:layout_toRightOf="@id/text1"
android:layout_below="@id/text1"
android:layout_toLeftOf="@id/text1"
android:layout_above="@id/text1"
|
在 Activity 中的简单用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class MainActivity extends Activity { private EditText edittext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edittext=(EditText) findViewById(R.id.edit_text); }
... ... edittext.setText("success"); ... ... }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <Button
android:id = "@+id/xxx" @+id/xxx表示新增控件命名为xxx
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="theButton"
android:textSize="24sp"
android:textColor="#0000FF"
android:textStyle="normal"
android:singleLine="true"
android:layout_margin="10dp" 同时设置四个方向的外边距
android:padding="30dp" 同时设置四个方向的内边距
android:gravity="bottom|right"
android:id="@+id/text1"
android:layout_toRightOf="@id/text1"
android:layout_below="@id/text1"
android:layout_toLeftOf="@id/text1"
android:layout_above="@id/text1"
|
我们需要在 Activity 中为 Button 的点击事件注册一个监听器,以下介绍两种方式来实现按钮监听事件,更多方法可以参考下 Android 的按钮单击事件及监听器的实现方式,跟 JAVA JFrame 监听类似。
1.通过匿名内部类作为事件监听器类,这种方法适用于事件监听器只是临时使用一次,因为大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),这是一种使用最广泛的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class MainActivity extends Activity { private EditText edittext; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edittext=(EditText) findViewById(R.id.edit_text); button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { edittext.setText("点击了Button"); } }); } }
|
2.使用实现接口的方式来进行注册,让 Activity 类实现了 OnClickListener 事件监听接口,从而可以在该 Activity 类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用 this 作为事件监听器对象即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public class MainActivity extends Activity implements OnClickListener { private EditText edittext; private Button button; private Button button2;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edittext=(EditText) findViewById(R.id.edit_text); button = (Button) findViewById(R.id.button); button2 = (Button) findViewById(R.id.button2); button.setOnClickListener(this); button2.setOnClickListener(this); }
@Override public void onClick(View v) { switch (v.getId()){ case R.id.button: edittext.setText("点击了Button"); break; case R.id.button2: edittext.setText("点击了Button2"); break; } } }
|
ImageButton 继承自 ImageView 类,与 Button 之间的最大区别在于 ImageButton 中没有 text 属性。ImageButton 控件中设置按钮中显示的图片可以通过 android:src 属性来设置。也可以通过 setImageResource(int)来设置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| <ImageButton
android:id = "@+id/xxx" @+id/xxx表示新增控件命名为xxx
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_width="200dp" android:layout_height="200dp"
android:scaleType="fitXY"
android:src ="@drawable/beautiful">
android:layout_margin="10dp" 同时设置四个方向的外边距
android:padding="30dp" 同时设置四个方向的内边距
android:gravity="bottom|right"
android:id="@+id/text1"
android:layout_toRightOf="@id/text1"
android:layout_below="@id/text1"
android:layout_toLeftOf="@id/text1"
android:layout_above="@id/text1"
|
RadioGroup
多选
RadioButton
单选选项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <RadioGroup> android:id="@+id/RG" android:layout_width="264dp" android:layout_height="202dp" android:layout_marginTop="16dp" android:orientation="horizontal"
<RadioButton android:id="@+id/RB1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radiobutton1" /> </RadioGroup>
|
6.CheckBox
复选框
1 2 3 4 5 6
| <CheckBox android:id="@+id/RB1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/radiobutton1" android:checked="ture"
|
7.ImageView
ImageView 控件负责显示图片,其图片的来源可以是在资源文件中的 id,也可以是 Drawable 对象或者位图对象。还可以是 Content Provider 的 URI。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <ImageView
android:id = "@+id/xxx" @+id/xxx表示新增控件命名为xxx
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_width="200dp" android:layout_height="200dp"
android:scaleType="fitXY"
android:src ="@drawable/beautiful">
android:layout_margin="10dp" 同时设置四个方向的外边距
android:padding="30dp" 同时设置四个方向的内边距
android:gravity="bottom|right"
android:orientation="horizontal"
android:id="@+id/text1"
android:layout_toRightOf="@id/text1"
android:layout_below="@id/text1"
android:layout_toLeftOf="@id/text1"
android:layout_above="@id/text1"
|
7.ProgressBar
ProgressBar 用于在界面上显示一个进度条,体现程序运行时正在加载数据。
在布局文件中使用:
1 2 3 4 5 6 7 8
| <ProgressBar android:id="@+id/pb" android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/> android:max="100"
|
借助控件可见性,实现数据加载完成时消失。
借助 setVisibility()
方法,可以传入 View.VISIBLE
、View.INVISIBLE
和 View.GONE
三种值。
下面实现点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这种效果,这里只给出按钮监听的代码:
1 2 3 4 5 6 7 8 9 10 11
| button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (progressBar.getVisibility() == View.GONE) { progressBar.setVisibility(View.VISIBLE); } else { progressBar.setVisibility(View.GONE); } } });
|
参考博客:Android 常用控件介绍及使用