• 一步一步学android之布局管理器——LinearLayout


    线性布局是最基本的一种布局,在基本控件篇幅中用到的都是LinearLayout,线性布局有两种方式,前面也有用到,一种是垂直的(vertical),一种是水平的(horizontal)。我们同样来看下LinearLayout的定义(http://developer.android.com/reference/android/widget/LinearLayout.html):


    其实Android中的所有组件包括布局管理器都是View的子类,对于这些View类的组件,除了可以像前面用xml定义之外,还可以在java代码中实现,下面就写个例子(在java代码中实现布局的动态添加):

    效果如下:


    MainActivity.java:

    package com.example.linearlayoutdemo;
    
    import android.app.Activity;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.ViewGroup;
    import android.widget.ImageButton;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    //		setContentView(R.layout.activity_main);不加载xml文件,这里注释掉,以便看出区别。
    		//创建线性布局
    		LinearLayout layout = new LinearLayout(this);
    		//设置布局管理器的宽度和高度
    		LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
    		//设置布局方向(horizontal和vertical)
    		layout.setOrientation(LinearLayout.VERTICAL);
    		//设置textView组件的高和宽
    		LinearLayout.LayoutParams txParam = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    		//设置ImageView的高和宽
    		LinearLayout.LayoutParams imgParam = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    		//新建一个textview
    		TextView tx = new TextView(this);
    		//设置textview的布局参数
    		tx.setLayoutParams(txParam);
    		tx.setText("LinearLayout布局学习");
    		tx.setTextColor(Color.RED);//设置颜色
    		tx.setTextSize(20);//设置大小
    		//增加组件
    		layout.addView(tx);
    		ImageView img = new ImageView(this);
    		img.setLayoutParams(imgParam);
    		img.setBackgroundResource(R.drawable.ic_launcher);//设置系统图标为显示图片
    		layout.addView(img);
    		super.addContentView(layout, param);
    	}
    }
    


    其实上面的代码就等同于下面的xml文件:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000"
            android:textSize="20sp"
            android:text="LinearLayout布局学习" />
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />
    
    </LinearLayout>
    


    这里说个要注意的问题就是,java代码中的setTextSize中传入的值是sp为单位,所以xml中也是20sp,而在getTextSize的时候是px值为单位,以后遇到不一样字体大小时不要忽略这个。



  • 相关阅读:
    如何启用apache的gzip压缩?
    Zend Framework配置Nginx的rewrite
    数据库差异比较工具
    心愿王泽 杨颖 乔媛 唐景莲
    在所有存储过程中查找一个关键字
    通用分页存储过程
    JavaScript开发工具 Aptana
    js如何控制select控件(下拉列表)
    Read and write flat file
    Extreme Programming
  • 原文地址:https://www.cnblogs.com/riskyer/p/3253748.html
Copyright © 2020-2023  润新知