疯狂Android入门_UI界面布局1
Android布局:
LinearLayout线性布局:
TableLayout表格布局:TableRow表示行。
RelativeLayout相对布局:
FrameLayout帧布局:
AbsoluteLayout绝对布局。
基本界面组件:
TextView文本框:<TextView>
EditText编辑框:<EditText>
Button普通按钮:<Button>
ImageButton图片按钮:<ImageButton>
ImageView图片框:<ImageView>
RadioButton单选按钮:<RadioGroup><RadioButton/></RadioGroup>
CheckBox复选框:<CheckBox>
ToggleButton状态开关按钮:<ToggleButton android:textOff="" android:textOn="">
AnalogClock和DigitalClock时钟:<>
DatePicker和TimePicker时间选择器:<>
ProgressBar进度条:<ProgressBar>
SeekBar拖动条:<SeekBar>
RatingBar星级评分条:<RatingBar android:numStars="5">
ScrollView滚动视图:<ScrollView>
高级界面组件:
Notification状态栏消息提示:
ContextMenu上下文菜单:
<ViewFlipper>实现多个View的动画切换 P340
SlidingDrawer滑动式抽屉:
ImageSwitch:
<ScrollView>垂直滚动条:
<HorizontalScrollView>水平滚动条:
<PreferenceScreen>选型设置:
AutoCompleteTextView自动完成文本框:<AutoCompleteTextView>
public class AutoCompleteTextViewTest extends Activity { //定义字符串数组,作为提示的文本 String[] books = new String[]{ "疯狂Java讲义", "疯狂Ajax讲义", "疯狂XML讲义", "疯狂Workflow讲义" }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //创建一个ArrayAdapter,封装数组 ArrayAdapter<String> aa = new ArrayAdapter<String>( this, android.R.layout.simple_dropdown_item_1line, books); AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.auto); //设置Adapter actv.setAdapter(aa); } }
Spinner弹出式菜单:<Spinner>
//main.xml <!-- 定义了一个Spinner组件, 指定该显示该Spinner组件的数组 --> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:entries="@array/books" /> </LinearLayout> //res\values\arrays.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="books"> <item>疯狂Java讲义</item> <item>疯狂Ajax讲义</item> <item>疯狂XML讲义</item> </string-array> </resources>
public class SpinnerTest2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); BaseAdapter ba = new BaseAdapter() { @Override public int getCount() { //指定一共包含10个选项 return 10; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } // //重写该方法,该方法返回的View将作为列表框的每项 // @Override // public View getView(int position, View convertView, ViewGroup parent) // { // TextView text = new TextView(SpinnerTest2.this); // text.setText(position""); // text.setTextSize(20); // text.setTextColor(R.color.red); // return text; // } //重写该方法,该方法返回的View将作为列表框的每项 @Override public View getView(int position, View convertView, ViewGroup parent) { //创建一个LinearLayout,并向其中添加2个组件 LinearLayout line = new LinearLayout(SpinnerTest2.this); line.setOrientation(0); ImageView image = new ImageView(SpinnerTest2.this); image.setImageResource(R.drawable.icon); TextView text = new TextView(SpinnerTest2.this); text.setText(position + ""); text.setTextSize(20); text.setTextColor(R.color.red); line.addView(image); line.addView(text); //返回LinearLayout实例 return line; } }; Spinner spinner = (Spinner)findViewById(R.id.test); spinner.setAdapter(ba); } }
TabHost选项卡:<TabHost>
GridView网格视图:<GridView android:numColumns="4">,行数由项数决定.
Gallery画廊视图:Gallery显示的图片由Adapter提供.<ImageSwitcher>+<Gallery>改进.
AlertDialog对话框:
//定义一个AlertDialog.Builder对象 final Builder builder = new AlertDialog.Builder(this); // 设置对话框的图标 builder.setIcon(R.drawable.tools); // 设置对话框的标题 builder.setTitle("自定义普通对话框"); // 设置对话框显示的内容 builder.setMessage("一个简单的提示对话框"); // 为对话框设置一个“确定”按钮 builder.setPositiveButton("确定" //为列表项的单击事件设置监听器 , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText show = (EditText) findViewById(R.id.show); // 设置EditText内容 show.setText("用户单击了“确定”按钮!"); } }); // 为对话框设置一个“取消”按钮 builder.setNegativeButton("取消" , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText show = (EditText) findViewById(R.id.show); // 设置EditText内容 show.setText("用户单击了“取消”按钮!"); } }); builder.setNeutralButton("取消" , new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText show = (EditText) findViewById(R.id.show); // 设置EditText内容 show.setText("用户单击了“取消”按钮!"); } }); //创建、并显示对话框 builder.create().show();
PopupWindow:
ProgressDialog进度条对话框:
Toast消息提示框:
//1 Toast.makeText(Activity01.this, "简单的提示信息", Toast.LENGTH_SHORT).show(); //2 //创建一个Toast提示信息 Toast toast = Toast.makeText(ToastTest.this , "带图片的的提示信息" // 设置该Toast提示信息的持续时间 , Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); //获取Toast提示里原有的View View toastView = toast.getView(); //创建一个ImageView ImageView image = new ImageView(ToastTest.this); image.setImageResource(R.drawable.tools); //创建一个LinearLayout容器 LinearLayout ll = new LinearLayout(ToastTest.this); //向LinearLayout中添加图片、原有的View ll.addView(image); ll.addView(toastView); toast.setView(ll); toast.show();
Menu菜单项:
//当客户点击MENU按钮的时候,调用该方法 @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 1, R.string.exit); menu.add(0, 2, 2,R.string.about); return super.onCreateOptionsMenu(menu); } //当客户点击菜单当中的某一个选项时,会调用该方法 @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == 1){ finish(); } return super.onOptionsItemSelected(item); }
View自定义视图组件:注意自定义View在xml文件中引用时,View标签要用全名(加上包名)