疯狂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>

View Code
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>

View Code
//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>
View Code 2
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对话框

View Code
        //定义一个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消息提示框

View Code
//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菜单项

View Code
//当客户点击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标签要用全名(加上包名) 

 

 

 

 

posted @ 2012-09-16 15:06  汤姆是一只猫  阅读(1138)  评论(0编辑  收藏  举报