android控件_android控件重叠 - CSDN
精华内容
参与话题
  • Android 任意层级 树形控件(无jar版)

    千次下载 热门讨论 2020-07-30 23:33:22
    代码为博客的实例代码: http://blog.csdn.net/lmj623565791/article/details/40212367 有问题博客留言
  • Android基础--------Android常用控件介绍及使用

    万次阅读 多人点赞 2018-06-04 16:34:31
    Android常用控件介绍及使用 控件 TextView 显示文字,相当于Panel ImageView 显示图片 EditText 输入框,可编辑,可设置软键盘方式 Button 按钮,可附带图片 CheckBox 复选框 RadioButton 单选按钮...

    Android常用控件介绍及使用

    控件

    TextView 显示文字,相当于Panel
    ImageView 显示图片
    EditText 输入框,可编辑,可设置软键盘方式
    Button 按钮,可附带图片
    CheckBox 复选框
    RadioButton 单选按钮(和 RadioGroup 配合使用)

    按用途分类

    文本控件
    – TextView
    – EditText
    按钮控件
    – Button
    – ImageButton
    状态开关按钮
    – ToggleButton
    单选与复选按钮
    – CheckBox和RadioButton
    图片控件
    – ImageView
    时钟控件
    – AnalogClock
    – DigitalClock

    日期与时间选择控件
    – DatePicker
    – TimePicker


    1. Textview

    显示文字,相当于Panel。一般用来文本展示,继承自android.view.View,在android.widget包中。

    这里写图片描述

    <TextView
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //文本文字 
    android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素
    
    //字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //文本显示位置
    android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false  
    
    

    2. EditText

    输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。

    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //文本文字 
    android:text="@string/hello_world" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素
    
    //文本提示内容
    android:hint="hello_world" //android:text和android:hint区别是后者只是提示作用,真正需要输入的时候提示的内容会消失
    
    //字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //文本显示位置
    android:gravity="center"  //来指定文字的对齐方式,可选值有 top、bottom、left、right、center 等
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false
    
    //输入内容设置为password类型
    android:password="true"  //输入的内容会变成······
    
    //输入内容设置为phoneNumber类型
    android:phoneNumber="true"  //只能输入数字
    
    //设定光标为显示/隐藏
    android:cursorVisible = "false" //true或者false,默认为true显示
    
    

    在Activity中的简单用法

    public class MainActivity extends Activity {
        //声明一个EditText
        private EditText edittext;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //给当前的活动加载一个布局
            setContentView(R.layout.activity_main);
            //初始化edittext
            edittext=(EditText) findViewById(R.id.edit_text);
        }
    
    ...
    ...
        //在方法中调用给edittext赋值
        edittext.setText("success");
    ...
    ...
    }

    3. Button

    Button是最常用的按钮,继承自android.widget.TextView,在android.widget包中。他的常用子类CheckBox,RadioButton, ToggleButton

    <Button
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"  //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //按钮上显示的文字 
    android:text="theButton" //两种方式,直接具体文本或者引用values下面的string.xml里面的元素@string/button
    
    //按钮字体大小
    android:textSize="24sp"  //以sp为单位
    
    //字体颜色
    android:textColor="#0000FF"  //RGB颜色
    
    //字体格式
    android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
    
    //是否只在一行内显示全部内容
    android:singleLine="true"  //true或者false,默认为false
    
    

    我们需要在Activity中为Button的点击事件注册一个监听器,以下介绍两种方式来实现按钮监听事件,更多方法可以参考下Android的按钮单击事件及监听器的实现方式

    1.通过匿名内部类作为事件监听器类,这种方法适用于事件监听器只是临时使用一次,因为大部分时候,事件处理器都没有什么利用价值(可利用代码通常都被抽象成了业务逻辑方法),这是一种使用最广泛的方法:
    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按钮注册监听器,并通过匿名内部类实现
            button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                //点击Button会改变edittext的文字为"点击了Button"
                edittext.setText("点击了Button");
                }
            }); 
        }
    }
    2.使用实现接口的方式来进行注册,让Activity类实现了OnClickListener事件监听接口,从而可以在该Activity类中直接定义事件处理器方法:onClick(view v),当为某个组件添加该事件监听器对象时,直接使用this作为事件监听器对象即可:
    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
        //用switch区分是哪个id
        public void onClick(View v) {
            switch (v.getId()){
            case R.id.button:
                edittext.setText("点击了Button");
                break;
            case R.id.button2:
                edittext.setText("点击了Button2");
                break;
            }
        }
    }

    4.ImageButton

    ImageButton继承自ImageView类,与Button之间的最大区别在于ImageButton中没有text属性。ImageButton控件中设置按钮中显示的图片可以通过android:src属性来设置。也可以通过setImageResource(int)来设置。

    <ImageButton
    
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"   //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
    android:layout_width="200dp"
    android:layout_height="200dp" 
    
    //把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
    android:scaleType="fitXY"
    
    //其他的关于android:scaleType的参数解释,也可以参考下面的直观图
    //android:scaleType="center"  在视图中心显示图片,并且不缩放图片
    //android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
    //android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
    //android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
    //android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
    //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
    //android:scaleType="matrix" 用矩阵来绘制
    
    //图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
    android:src ="@drawable/beautiful"> 
    

    这里写图片描述


    5.Checkbox和RadioButton

    android.widget. RadioButton单选按钮,继承自android.widget.CompoundButton,在android.widget包中
    单选按钮要声明在RadioGroup,RadioGroup是流式布局android.widget.LinearLayout的子类。
    单选按钮状态更改的监听,是要给他的RadioGroup添加:
    setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener)监听器。
    注意监听器类型和CheckBox是不一样的。

    <RadioGroup
            android:id="@+id/radio_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            //设置RadioButton的排列方式,分为水平排列horizontal与垂直排列vertical
            android:orientation="horizontal" >
               <RadioButton 
                   android:id="@+id/rd1"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   //设置单选后紧跟的文本提示文字
                   android:text="北京"
                   //设置文字的大小
                   android:textSize="30sp"
                   //设置文字的颜色
                   android:textColor="#0000FF"
                   //字体格式
                   android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal
                    />
               <RadioButton 
                   android:id="@+id/rd2"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:textSize="30sp"
                   android:text="上海" />
          </RadioGroup>
    public class MainActivity extends Activity{
        对控件对象进行声明 
        private TextView textView;
        private RadioGroup radiogroup; 
        private RadioButton radiobutton1; 
        private RadioButton radiobutton2;  
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //通过控件的ID来得到代表控件的对象 
            textView = (TextView) findViewById(R.id.text_view);
            radiogroup = (RadioGroup) findViewById(R.id.radio_group);
            radiobutton1 = (RadioButton) findViewById(R.id.rd1);
            radiobutton2 = (RadioButton) findViewById(R.id.rd2);
    
            //调用setOnCheckedChangeListener来对RadioGroup进行监听的代码
            radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    if(checkedId == radiobutton1.getId()){
                        textView.setText("北京");
                    }else if(checkedId == radiobutton2.getId()){
                        textView.setText("上海");
                    }
                }
            });
        }   
    }

    android.widget.CheckBox复选按钮,继承自android.widget.CompoundButton,在android.widget包中。
    isChecked() :检查是否被选中
    监听状态修改,需要添加:
    setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener);

    <CheckBox 
        android:id="@+id/cb1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        //设置复选按钮后紧跟的文本提示文字
        android:text="北京"
        //设置文字的大小
        android:textSize="30sp"
        //设置文字的颜色
        android:textColor="#0000FF"
        //字体格式
        android:textStyle="normal"  //normal,bold,italic分别为正常,加粗以及斜体,默认为normal/>
    <CheckBox 
        android:id="@+id/cb2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="上海"
        android:textSize="30sp"
        android:textColor="#0000FF"/>
    
    在mainactivity.java中监听按钮
    
    public class MainActivity extends Activity{
        对控件对象进行声明 
        private TextView textView;
        private CheckBox checkbox1;
        private CheckBox checkbox2; 
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //通过控件的ID来得到代表控件的对象 
            textView = (TextView) findViewById(R.id.text_view);
            checkbox1 = (CheckBox) findViewById(R.id.cb1);
            checkbox2 = (CheckBox) findViewById(R.id.cb2);
    
            //为第一个 CheckBox 注册监听
            checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener(){
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    //如果第一个 CheckBox 被选中
                    if(isChecked == true){
                        textView.setText("CheckBox选中北京");
                    }
                }
            });
    
            //为第二个 CheckBox 注册监听
            checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener(){
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    //如果第二个 CheckBox 被选中
                    if(isChecked == true){
                        textView.setText("CheckBox选中上海");
                    }
                }
            });
        }   
    }
    
    

    6.ImageView

    ImageView控件负责显示图片,其图片的来源可以是在资源文件中的id,也可以是Drawable对象或者位图对象。还可以是Content Provider的URI。

    这里写图片描述

    <ImageView
    //控件id
    android:id = "@+id/xxx"  @+id/xxx表示新增控件命名为xxx
    
    //宽度与高度
    android:layout_width="wrap_content"   //wrap_content或者match_parent
    android:layout_height="wrap_content"  //wrap_content或者match_parent
    
    //此外,可以具体设置高度和宽度显示的像素,不过这样设置如果图片尺寸大于设置的显示的尺寸,则图片是显示不全的,这是可以配合android:scaleType属性。
    android:layout_width="200dp"
    android:layout_height="200dp" 
    
    //把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageButton.
    android:scaleType="fitXY"
    
    //其他的关于android:scaleType的参数解释,也可以参考下面的直观图
    //android:scaleType="center"  在视图中心显示图片,并且不缩放图片
    //android:scaleType="centercrop"  按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度
    //android:scaleType="centerinside"  按比例缩放图片,使得图片长 (宽)的小于等于视图的相应维度
    //android:scaleType="fitcenter" 按比例缩放图片到视图的最小边,居中显示
    //android:scaleType="fitend" 按比例缩放图片到视图的最小边,显示在视图的下部分位置
    //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置
    //android:scaleType="matrix" 用矩阵来绘制
    
    //图片来源,需要将图片复制放到res/drawable文件夹里面,引用的时候不需要写图片的后缀
    android:src ="@drawable/beautiful">  
    
    

    7.ProgressBar

    ProgressBar 用于在界面上显示一个进度条,表示我们的程序正在加载一些数据,运行程序,会看到屏幕中有一个圆形进度条正在旋转。

    在布局xml文件中的用法非常简单:

    <ProgressBar 
        android:id="@+id/pb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        //默认是圆形进度条,可以知道样式设置为水平进度条
        style="?android:attr/progressBarStyleHorizontal"/>
        //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度
        android:max="100"

    那么如何才能让进度条在数据加载完成时消失呢,这里我们就需要用一开始所讲的Android 控件的可见属性。
    可以通过代码来设置控件的可见性,使用的是 setVisibility()方法,可以传入 View.VISIBLE、View.INVISIBLE 和 View.GONE 三种值。

    下面实现点击一下按钮让进度条消失,再点击一下按钮让进度条出现的这种效果,这里只给出按钮监听的代码:

    button.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    //通过 getVisibility()方法来判断 ProgressBar 是否可见
                    if (progressBar.getVisibility() == View.GONE) {
                        progressBar.setVisibility(View.VISIBLE);
                    } else {
                        progressBar.setVisibility(View.GONE);
                    }
                }
            });

    8DatePicker–日期与时间选择控件

    常用方法:
    getDayOfMonth():获取当前Day
    getMonth():获取当前月
    getYear()获取当前年
    updateDate(int year, int monthOfYear, int dayOfMonth):更新日期

    TimePicker
    查看一个在24小时或上午/下午模式下一天的时间。

    常用方法
    setCurrentMinute(Integer currentMinute)设置当前时间的分钟
    getCurrentMinute()获取当前时间的分钟
    setEnabled(boolean enabled)设置当前视图是否可以编辑。
    m_TimePicker.setIs24HourView(true);设置为24小时制显示
    setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)当时间改变时调用

    相关包类:
    TimePickerDialog、DatePickerDialog
    以对话框形式显示日期时间视图

    Calendar
    日历是设定年度日期对象和一个整数字段之间转换的抽象基类,如,月,日,小时等。

    展开全文
  • android重要控件各种大全

    千次阅读 2019-01-16 14:35:22
    CSDN博客 https://blog.csdn.net/mapeifan/article/details/50454002

    CSDN博客  https://blog.csdn.net/mapeifan/article/details/50454002

    展开全文
  • android基础--系统控件

    2018-11-06 16:00:17
    1.文本框TextViewTextView 1.1通过代码呈现 public class TextViewActivity extends Activity {  @Overrideprotected  void onCreate(Bundle savedInstanceState) ... setContentView(R.lay...

    1.文本框TextViewTextView

    1.1通过代码呈现

    public class TextViewActivity extends Activity

    {

        @Overrideprotected

        void onCreate(Bundle savedInstanceState)

            {

                setContentView(R.layout.textview);

                LinearLayout ll = (LinearLayout) findViewById(R.id.textviewll);

                TextView textView = new TextView(this);//设置显示文字

                textView.setText("从代码中添加一个TextView");//设置显示颜色

                textView.setTextColor(Color.WHITE);//设置显示字体大小

                textView.setTextSize(18);//设置显示背景颜色

                textView.setBackgroundColor(Color.BLUE);//设置锚点位置               

                 textView.setGravity(Gravity.CENTER_VERTICAL¦Gravity.CENTER_HORIZONTAL);

                //把这个view加入到布局当中ll.addView(textView);

                super.onCreate(savedInstanceState);

            }

    }

    1.2通过xml布局文件呈现

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:

        android="http://schemas.android.com/apk/res/android"

        android:id="@+id/textviewll"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

    <TextView

        android:id="@+id/textView0"           

        android:layout_width="match_parent"   

        android:layout_height="wrap_content"   

        android:textColor="#000000"   

        android:textSize="18dip"   

        android:background="#00FF00"       

        android:text="@string/textView"       

        android:gravity="center_vertical¦center_horizontal"       

        />

    </LinearLayout>

     

    2.网页框WebView

    public class WebViewActivity extends Activity

    {    

        WebView webView = null;    

        static final String MIME_TYPE = "text/html";    

        static final String ENCODING = "utf-8";    

        @Override    

        protected void onCreate(Bundle savedInstanceState)

        {

            setContentView(R.layout.webview);

            webView = (WebView) findViewById(R.id.webview);

            webView.loadDataWithBaseURL(null,"<a href='http://baidu.com'>欢迎访问</a>", MIME_TYPE, ENCODING, null);

            super.onCreate(savedInstanceState);    

        }

    }

     

     

    Xml布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:id="@+id/textviewll"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="网页框WebView测试"       

            android:gravity="center_vertical¦center_horizontal"       

            />

        <WebView

            android:id="@+id/webview"             

            android:layout_height="wrap_content"             

            android:layout_width="match_parent"

            />

    </LinearLayout>

    3.Menu菜单

    public class MenuActivity extends Activity

    {

        @Override

        protected void onCreate(Bundle savedInstanceState)        

        {

            setContentView(R.layout.menuview);

            super.onCreate(savedInstanceState);

        }

        @Override

        public boolean onCreateOptionsMenu(Menu menu)

        {

            menu.add(0, 0, Menu.NONE, "菜单1").setIcon(R.drawable.icon);

            menu.add(0, 1, Menu.NONE, "菜单2").setIcon(R.drawable.icon);

            menu.add(0, 2, Menu.NONE, "菜单3").setIcon(R.drawable.icon);

            menu.add(0, 3, Menu.NONE, "菜单4").setIcon(R.drawable.icon);

            menu.add(0, 4, Menu.NONE, "菜单5").setIcon(R.drawable.icon);

            menu.add(0, 5, Menu.NONE, "菜单6").setIcon(R.drawable.icon);

            return super.onCreateOptionsMenu(menu);

        }

        @Override

        public boolean onOptionsItemSelected(MenuItem item)

        {

            Dialog(item.getItemId());

            return super.onOptionsItemSelected(item);

        }

        private void Dialog(int message)

        {

            new AlertDialog.Builder(this).setMessage("您单击第【" + message + "】项Menu菜单项.").show();

        }

    }

     

    Xml布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        >

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="Menu菜单测试"       

            android:gravity="center_vertical¦center_horizontal"       

            />

    </LinearLayout>

    4.按钮Button

    public class ButtonActivity extends Activity

    {

        Context mContext = null;    

        @Override    

        protected void onCreate(Bundle savedInstanceState)

        {

            setContentView(R.layout.buttonview);

            mContext = this; //普通按钮

            Button button0 = (Button)findViewById(R.id.buttonview0); //设置按钮文字颜色

            button0.setTextColor(Color.BLUE); //设置按钮文字大小

            button0.setTextSize(30); //设置按钮监听 点击事件

            button0.setOnClickListener(new OnClickListener()

            {     

                @Override     

                public void onClick(View arg0) {

                    Toast.makeText(ButtonActivity.this, "您点击了‘这是一个按钮’", Toast.LENGTH_LONG).show();     

                }

            }); //带图片的按钮

        ImageButton button1 = (ImageButton)findViewById(R.id.buttonview1); //设置按钮监听 点击事件     button1.setOnClickListener(new OnClickListener() {     

            @Override     

            public void onClick(View arg0)

            {

                Toast.makeText(ButtonActivity.this, "您点击了一个带图片的按钮", Toast.LENGTH_LONG).show();     

            }

        });

        super.onCreate(savedInstanceState);    

        }

    }

    XML布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="Button按钮测试"       

            android:gravity="center_vertical¦center_horizontal"       

            />      

        <Button    

            android:id="@+id/buttonview0"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="这是一个按钮"     />      

        <ImageButton    

            android:id="@+id/buttonview1"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:src="@drawable/icon"    

        />

    </LinearLayout>

    5.编辑框EditView

    public class EditTextActivity extends Activity

    {

        Context mContext = null;

        @Override

        protected void onCreate(Bundle savedInstanceState)

        {

            setContentView(R.layout.editview);

            mContext = this;//帐号

            final EditText editText0 = (EditText)findViewById(R.id.editview0);//密码

            final EditText editText1 = (EditText)findViewById(R.id.editview1);//确认按钮

            Button button = (Button)findViewById(R.id.editbutton0);

            button.setOnClickListener(new OnClickListener()

            {

                @Override

                public void onClick(View arg0)

                {

                    String username = editText0.getText().toString();

                    String password = editText1.getText().toString();

                    Toast.makeText(EditTextActivity.this, "用户名:"+username +"密码:"+ password,         Toast.LENGTH_LONG).show();}});super.onCreate(savedInstanceState);

                }

    }

    XML布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="EditText编辑框测试"       

            android:gravity="center_vertical¦center_horizontal"  />      

        <EditText    

            android:id="@+id/editview0"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"            

            android:hint="请输入帐号"            

            android:phoneNumber="true"   />      

        <EditText    

            android:id="@+id/editview1"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"            

            android:hint="请输入密码"            

            android:password="true"     />      

        <Button    

            android:id="@+id/editbutton0"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="确定"     />

    </LinearLayout>

    6.单项选择

    public class RadioActivity extends Activity

    {

        Context mContext = null;

        @Override

        protected void onCreate(Bundle savedInstanceState)

        {

            setContentView(R.layout.radioview);

            mContext = this;//单选组(只有在一个组中的按钮可以单选)

            RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radion0);//单选按钮(第一组)

            final RadioButton radioButton0 = (RadioButton)findViewById(R.id.radionButton0);

            final RadioButton radioButton1 = (RadioButton)findViewById(R.id.radionButton1);

            final RadioButton radioButton2 = (RadioButton)findViewById(R.id.radionButton2);

            radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()

            {

                @Override

                public void onCheckedChanged(RadioGroup arg0, int checkID)

                {

                    if(radioButton0.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第一组" + radioButton0.getText(), Toast.LENGTH_LONG).show();

                    }else if(radioButton1.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第一组" + radioButton1.getText(), Toast.LENGTH_LONG).show();

                    }else if(radioButton2.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第一组" + radioButton2.getText(), Toast.LENGTH_LONG).show();

                    }

                }

            });

            RadioGroup radioGroup0 = (RadioGroup)findViewById(R.id.radion1);//单选按钮(第二组)

            final RadioButton radioButton3 = (RadioButton)findViewById(R.id.radionButton3);

            final RadioButton radioButton4 = (RadioButton)findViewById(R.id.radionButton4);

            final RadioButton radioButton5 = (RadioButton)findViewById(R.id.radionButton5);

            radioGroup0.setOnCheckedChangeListener(new OnCheckedChangeListener()

            {

                @Override

                public void onCheckedChanged(RadioGroup arg0, int checkID)

                {

                    if(radioButton3.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第二组" + radioButton3.getText(), Toast.LENGTH_LONG).show();

                    }else if(radioButton4.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第二组" + radioButton4.getText(), Toast.LENGTH_LONG).show();

                    }else if(radioButton5.getId() == checkID)

                    {

                        Toast.makeText(RadioActivity.this, "您选中了第二组" + radioButton5.getText(), Toast.LENGTH_LONG).show();}}});super.onCreate(savedInstanceState);

                    }

            }

    XML布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="单项选择测试第一组"       

            android:gravity="center_vertical¦center_horizontal"       

            />    

        <RadioGroup              

            android:id="@+id/radion0"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content" >    

        <RadioButton     

            android:id="@+id/radionButton0"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item0"    />    

        <RadioButton     

            android:id="@+id/radionButton1"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item1"    />    

        <RadioButton     

            android:id="@+id/radionButton2"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item2"    />    

        </RadioGroup>

    <TextView

        android:layout_width="match_parent"   

        android:layout_height="wrap_content"   

        android:textColor="#000000"   

        android:textSize="18dip"   

        android:background="#00FF00"       

        android:text="单项选择测试第二组"       

        android:gravity="center_vertical¦center_horizontal"  />    

        <RadioGroup              

            android:id="@+id/radion1"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content" >    

        <RadioButton     

            android:id="@+id/radionButton3"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item3"    />    

        <RadioButton     

            android:id="@+id/radionButton4"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item4"    />    

        <RadioButton     

            android:id="@+id/radionButton5"   

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:text="item5"    />    

        </RadioGroup>

    </LinearLayout>

    7.多项选择使用系统控件Checkbox

    public class CheckboxActivity extends Activity

    {

        //用来储存选中的内容

        ArrayListitem = new ArrayList();

        @Override

        protected void onCreate(Bundle savedInstanceState)

        {

            setContentView(R.layout.checkboxview);

            CheckBox checkbox0 = (CheckBox)findViewById(R.id.checkboxview0);

            CheckBox checkbox1 = (CheckBox)findViewById(R.id.checkboxview1);

            CheckBox checkbox2 = (CheckBox)findViewById(R.id.checkboxview2);

            CheckBox checkbox3 = (CheckBox)findViewById(R.id.checkboxview3);

            Button button = (Button)findViewById(R.id.checkboxbutton);//对checkbox进行监听 

            checkbox0.setOnCheckedChangeListener(new OnCheckedChangeListener()

            {

                @Override

                public void onCheckedChanged(CompoundButton button, boolean arg1)

                {

                    String str = button.getText().toString();

                    if (button.isChecked()) {item.add(str);}

                    else {item.remove(str);}

                }

            });

        checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener()

        {

            @Override

            public void onCheckedChanged(CompoundButton button, boolean arg1)

            {

                String str = button.getText().toString();

                if (button.isChecked()) {item.add(str);}

                else {item.remove(str);}

            }

        });

        checkbox2.setOnCheckedChangeListener(new OnCheckedChangeListener()

        {

            @Override

            public void onCheckedChanged(CompoundButton button, boolean arg1)

            {

                String str = button.getText().toString();

                if (button.isChecked()) {item.add(str);}

                else {item.remove(str);}

            }

        });

        checkbox3.setOnCheckedChangeListener(new OnCheckedChangeListener()

        {

            @Override

            public void onCheckedChanged(CompoundButton button, boolean arg1)

            {

                String str = button.getText().toString();

                if (button.isChecked()) {item.add(str);}

                else {item.remove(str);}

            }

        });

        button.setOnClickListener(new OnClickListener()

        {

            @Override

            public void onClick(View arg0)

            {

                String str = item.toString();

                Toast.makeText(CheckboxActivity.this, "您选中了" + str, Toast.LENGTH_LONG).show();}});super.onCreate(savedInstanceState);

            }

        }

    XML布局:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical"

        android:layout_width="match_parent"

        android:layout_height="match_parent">

        <TextView

            android:layout_width="match_parent"   

            android:layout_height="wrap_content"   

            android:textColor="#000000"   

            android:textSize="18dip"   

            android:background="#00FF00"       

            android:text="多项选择测试"       

            android:gravity="center_vertical¦center_horizontal"  

        />      

        <CheckBox    

            android:id="@+id/checkboxview0"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="item0"    

            />      

        <CheckBox    

            android:id="@+id/checkboxview1"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="item1"    

            />      

        <CheckBox    

            android:id="@+id/checkboxview2"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="item2"     />      

        <CheckBox    

            android:id="@+id/checkboxview3"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="item3"     />      

        <Button    

            android:id="@+id/checkboxbutton"         

            android:layout_width="match_parent"

            android:layout_height="wrap_content"    

            android:text="确定"     />

    </LinearLayout>

     

        下载地址:http://vdisk.weibo.com/s/a9j6e

    展开全文
  • Android自定义控件的三种实现方式

    万次阅读 多人点赞 2017-10-19 16:25:14
    Android 自定义控件三种实现方法为组合原生控件,自己绘制和继承原生控件. 1.组合原生控件 将自己需要的控件组合起来变成一个新控件,如下制作常见的app页面头部.  新建一个Android项目,创建一个头部布局view_top....

    Android 自定义控件三种实现方法为组合原生控件,自己绘制和继承原生控件.

    1.组合原生控件
    将自己需要的控件组合起来变成一个新控件,如下制作常见的app页面头部.
     新建一个Android项目,创建一个头部布局view_top.xml
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="#50e7ab"
        android:padding="10dp">
    
        <ImageView
            android:id="@+id/top_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/fanhui_bai" />
    
        <TextView
            android:id="@+id/top_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"RelativeLayout 
            android:layout_centerVertical="true"
            android:text="首页"
            android:textSize="17sp"
            android:textColor="#ffffff" />
    
        <TextView
            android:id="@+id/top_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交"
            android:textSize="17sp"
            android:textColor="#ffffff"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true" />
    </RelativeLayout>

    下面创建一个TopView继承RelativeLayout

    package t.s.com;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.LayoutInflater;
    import android.widget.ImageView;
    import android.widget.RelativeLayout;
    import android.widget.TextView;
    
    /**
     * Created by Administrator on 2017/10/19.
     */
    
    public class TopView extends RelativeLayout {
        // 返回按钮控件
        private ImageView top_left;
        // 标题Tv
        private TextView top_title;
    
        private TextView top_right;
    
        public TopView(Context context) {
            super(context);
        }
    
        public TopView(Context context, AttributeSet attrs) {
            super(context, attrs);
            // 加载布局
            LayoutInflater.from(context).inflate(R.layout.view_top, this);
            // 获取控件
            top_left = (ImageView) findViewById(R.id.top_left);
            top_title = (TextView) findViewById(R.id.top_title);
            top_right = (TextView) findViewById(R.id.top_right);
        }
    
    
        // 为左侧返回按钮添加自定义点击事件
        public void setOnclickLeft(OnClickListener listener) {
            top_left.setOnClickListener(listener);
        }
    
        // 设置标题的方法
        public void setTitle(String title) {
            top_title.setText(title);
        }
    
        // 设置标题的方法
        public void setRightTitle(String title) {
            top_right.setText(title);
        }
    
    }
    

    然后在activity_main.xml中引用

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="t.s.com.MainActivity">
        <t.s.com.TopView
            android:id="@+id/top_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
    

    然后再在MainActivity中对控件做操作

    package t.s.com;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        private TopView topView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            topView = (TopView) findViewById(R.id.top_view);
    
            topView.setOnclickLeft(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(MainActivity.this, "点击了返回按钮", Toast.LENGTH_SHORT).show();
                }
            });
            topView.setRightTitle("设置");
            topView.setTitle("首页");
        }
    }
    
    运行效果


    2.自己绘制控件

    熟悉view的绘制原理
    1.measure用来测量View的宽和高。
    2.layout用来确定View在父容器中放置的位置。
    3.draw用来将view绘制在屏幕上

    创建一个类CustomView继承View,实现点击事件接口OnClickListener
    package t.s.com;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.Rect;
    import android.util.AttributeSet;
    import android.view.View;
    
    /**
     * Created by Administrator on 2017/10/19.
     */
    
    public class CustomView extends View implements View.OnClickListener {
    
        // 定义画笔
        private Paint mPaint;
        // 用于获取文字的宽和高
        private Rect mRect;
        // 计数值,每点击一次本控件,其值增加1
        private int mCount=0;
    
        public CustomView(Context context, AttributeSet attrs) {
            super(context, attrs);
    
            // 初始化画笔、Rect
            mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
            mRect = new Rect();
            // 本控件的点击事件
            setOnClickListener(this);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            mPaint.setColor(Color.BLACK);
            // 绘制一个填充色为蓝色的矩形
            canvas.drawRect(0, 0, getWidth(), getHeight(), mPaint);
            mPaint.setColor(Color.WHITE);
            mPaint.setTextSize(50);
            String text = String.valueOf(mCount);
            // 获取文字的宽和高
            mPaint.getTextBounds(text, 0, text.length(), mRect);
            float textWidth = mRect.width();
            float textHeight = mRect.height();
    
            // 绘制字符串
            canvas.drawText("点了我"+text+"次", getWidth() / 2 - textWidth / 2, getHeight() / 2
                    + textHeight / 2, mPaint);
        }
    
        @Override
        public void onClick(View view) {
            mCount++;
            invalidate();
        }
    }
    




    在activity_main.xml中引入该自定义布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="t.s.com.MainActivity">
    
        <t.s.com.TopView
            android:id="@+id/top_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
    
        <t.s.com.CustomView
            android:id="@+id/custom"
            android:layout_width="300dp"
            android:layout_height="200dp"
            android:layout_gravity="center"/>
    
    
    </LinearLayout>
    


    运行效果图

    当然这个自定义控件比较粗糙,实际的要根据业务需求逻辑自己绘制,原理一样.


    3.继承原生控件  下面以一个不允许输入表情的EditText作为例子

    package t.s.com;
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.text.Editable;
    import android.text.Selection;
    import android.text.Spannable;
    import android.text.TextWatcher;
    import android.util.AttributeSet;
    import android.widget.EditText;
    import android.widget.Toast;
    
    /**
     * Created by Administrator on 2017/6/5 0005.
     */
    
    @SuppressLint("AppCompatCustomView")
    public class EmoEditText extends EditText {
        //输入表情前的光标位置
        private int cursorPos;
        //输入表情前EditText中的文本
        private String inputAfterText;
        //是否重置了EditText的内容
        private boolean resetText;
    
        private Context mContext;
    
        public EmoEditText(Context context) {
            super(context);
            this.mContext = context;
            initEditText();
        }
    
        public EmoEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            this.mContext = context;
            initEditText();
        }
    
        public EmoEditText(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            this.mContext = context;
            initEditText();
        }
    
        // 初始化edittext 控件
        private void initEditText() {
            addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int before, int count) {
                    if (!resetText) {
                        cursorPos = getSelectionEnd();
                        // 这里用s.toString()而不直接用s是因为如果用s,
                        // 那么,inputAfterText和s在内存中指向的是同一个地址,s改变了,
                        // inputAfterText也就改变了,那么表情过滤就失败了
                        inputAfterText= s.toString();
                    }
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    if (!resetText) {
                        if (count >= 2) {//表情符号的字符长度最小为2
                            CharSequence input = s.subSequence(cursorPos, cursorPos + count);
                            if (containsEmoji(input.toString())) {
                                resetText = true;
                                Toast.makeText(mContext, "暂不支持表情评论哦", Toast.LENGTH_SHORT).show();
                                //是表情符号就将文本还原为输入表情符号之前的内容
                                setText(inputAfterText);
                                CharSequence text = getText();
                                if (text instanceof Spannable) {
                                    Spannable spanText = (Spannable) text;
                                    Selection.setSelection(spanText, text.length());
                                }
                            }
                        }
                    } else {
                        resetText = false;
                    }
                }
    
                @Override
                public void afterTextChanged(Editable editable) {
    
                }
            });
        }
    
    
        /**
         * 检测是否有emoji表情
         *
         * @param source
         * @return
         */
        public static boolean containsEmoji(String source) {
            int len = source.length();
            for (int i = 0; i < len; i++) {
                char codePoint = source.charAt(i);
                if (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
                    return true;
                }
            }
            return false;
        }
    
        /**
         * 判断是否是Emoji
         *
         * @param codePoint 比较的单个字符
         * @return
         */
        private static boolean isEmojiCharacter(char codePoint) {
            return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) ||
                    (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
                    ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000)
                    && (codePoint <= 0x10FFFF));
        }
    }
    

    然后在activity_main.xml引入该控件就可以了

    <t.s.com.EmoEditText
        android:id="@+id/edtext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    


    学会了原理就可以根据自己的需求逻辑制作控件了.


    展开全文
  • android通过代码动态添加和删除控件

    万次阅读 多人点赞 2018-05-13 20:08:50
    1.概述android开发当中有可能会碰到以下这种情况,某个页面,内容不确定,根据用户需求增加或减少相应控件数。这种情况一般发生在编辑类页面当中,比如你的应用包含用户发帖功能,其内容组织结构和多少是可变的。...
  • android 控件属性大全

    千次阅读 2018-06-06 16:26:59
    Android控件属性大全”: &nbsp; 关键词:android&nbsp;控件&nbsp;属性&nbsp;大全 &nbsp; &nbsp; 控件属性: android属性 android功能强大,界面华丽,但是众多的布局属性就害苦了开发者...
  • Android 中常用的控件介绍及其相应的使用,内含实例代码
  • android控件的对齐方式(转)

    万次阅读 2013-09-10 10:58:15
    android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android:layout_...
  • Android中RelativeLayout各个属性的含义

    万次阅读 多人点赞 2010-10-11 15:38:00
    android:layout_above="@id/xxx" --将控件置于给定ID控件之上 android:layout_below="@id/xxx" --将控件置于给定ID控件之下 android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的...
  • android 控件布局(顶部、底部......) 留着自己用 android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右...
  • Android 控件显示在最上层的方法

    万次阅读 多人点赞 2017-06-22 10:57:52
    1.在XML文件中,可以使用FramLayout或RelativeLayout来布局,每个控件都是覆盖显示的,后加进来的控件覆盖前面的控件。可以把控件写在最后,从而实现显示在最上层的效果。 2.view.bringToFront() 可以将布局在下层...
  • 如何让一个控件在另一个控件下面,直接操作下面代码: <LinearLayout android:id="@+id/ly_dialogPersonCode_Title" android:layout_width="match_parent" android:layout_height="match_parent" android:...
  • android线性布局控件之间的距离设置

    万次阅读 2014-05-07 13:54:43
    android线性布局中,两个空间之间的距离可以设置,she android:layout_marginBottom 离某元素底边缘的距离 android:layout_marginLeft 离某元素左边缘的距离 android:layout_marginRight 离某元素右边缘的距离...
  • ANDROID相对布局详细说明

    万次阅读 2012-06-05 00:10:41
    RelativeLayout(相对...android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
  • Android 控件最上层显示方法

    万次阅读 多人点赞 2013-03-15 09:00:24
    view.bringToFront() 可以讲布局在下层的控件放到上层,不被其他控件挡住。
  • 相对布局是通过相对定位的方式让控件出现在布局任意位置;  在相对布局中如果不指定控件摆放的位置,那么控件都会被默认放在RelativeLayout的左上角。因此要先指定第一个控件的位置,其他控件为该位置的相对位置;...
  • android 相对布局属性

    万次阅读 2012-01-16 15:01:47
    Android RelativeLayout布局 android:layout_marginTop="25dip" //顶部距离 android:gravity="left" //空间布局位置 android:layout_marginLeft="15dip //距离左边距 // 相对于给定ID控件 android:...
  • android:id="@+id/tv_news_content" android:layout_width="wrap_content" android:layout_height="wrap_content" ...我需要在程序中判断控件是否可见,请问代码该怎么写?(主要是获取visibility属性的值)
  • android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android:layout_...
1 2 3 4 5 ... 20
收藏数 292,151
精华内容 116,860
关键字:

android控件