精华内容
下载资源
问答
  • 2017-04-18 08:58:08

    定义如下:

    layout_weight : 用于指定剩余空闲空间的分割比例。用法:

    <LinearLayout 
      android:orientation="horizontal">
    
      <TextView 
          android:layout_width="wrap_content"
          android:layout_height="wrap_height"
          android:layout_weight="1"
          android:text="888"/>
    
      <TextView 
          android:layout_width="wrap_content"
          android:layout_height="wrap_height"
          android:layout_weight="1"
          android:text="999999"/>
    
    </LinearLayout>

    为什么说是奇葩呢?

    以上面的布局代码为例,TextView-888 和 TextView-999999 是横向排列的2个控件,它们的layout_weight="1",说明这2个控件平分了所在LinearLayout的剩余的空闲空间, 我们很容易的就误认为这2个控件平分了水平方向的空间,即:各自占据了 50% 的宽度。

    其实这是错误的,而是:TextView-999999控件所占据的宽度 > TextView-888所占据的宽度。因为999999字符占据的宽度大于888占据的宽度,即:w(999999) + 1/2空闲空间 > w(888) + 1/2空闲空间

    这就是它奇葩的地方,很容易就让我们一直误认为是整个控件分割空间。到这里,大家一定会认为,这样的话,layout_weight 这个属性就没有什么意义了,原以为它可以分配空间呢,原来只是分割剩余空闲空间。

    其实,呵呵,layout_weight 是可以用来进行整个空间的分割的,如果我们让控件的宽度定义为0,这样比如2个控件的 layout_weight="1" 就可以各自50%平分整个空间了,因为:0 + 1/2空闲空间 = 0 + 1/2空闲空间

    这是一个小技巧,也是非常实用的一个实用layout_weight分割方案:定义控件的 layout_width="0dp" 或layout_height="0dp" 配上 layout_weight 就可以实现对整个空间的比例分割了。

    下面定义了2个控件的 layout_width="0dp", layout_weight="1",实现了水平方向50%平均分割:

    <LinearLayout 
      android:orientation="horizontal">
    
      <TextView 
          android:layout_width="0dp"
          android:layout_height="wrap_height"
          android:layout_weight="1"
          android:text="888"/>
    
      <TextView 
          android:layout_width="0dp"
          android:layout_height="wrap_height"
          android:layout_weight="1"
          android:text="999999"/>
    
    </LinearLayout>

    下面定义了2个控件的 layout_height="0dp", layout_weight="1",实现了竖直方向50%平均分割:

    <LinearLayout 
      android:orientation="vertical">
    
      <TextView 
          android:layout_width="wrap_content"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:text="888"/>
    
      <TextView 
          android:layout_width="wrap_content"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:text="999999"/>
    
    </LinearLayout>

    layout_weight 原来是可以这么用滴

    更多相关内容
  • 1.font-weight: 100|200|300 2.font-weight: 400|500 3.font-weight: 600|700 4.font-weight: 400 text-shadow: 0 0 0 #000;
    font-weight: 100|200|300
    

    在这里插入图片描述

    font-weight: 400|500
    

    在这里插入图片描述

    font-weight: 600|700
    

    在这里插入图片描述

    font-weight: 400
    text-shadow: 0 0 0 #000;
    

    在这里插入图片描述

    展开全文
  • http://blog.csdn.net/xiaanming/article/details/13630837今天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知道Android里面专门有一个...

    http://blog.csdn.net/xiaanming/article/details/13630837

    天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知

    道Android里面专门有一个TableLayout来实现表格的,说实话,我平常开发中用TableLayout还是比较少的,几乎没有用到,我们完

    全可以用LinearLayout和RelativeLayout来代替TableLayout的使用,自己开发中主要使用

    LinearLayout,RelativeLayout这两种布局,不过刚开始我还是偏爱于RelativeLayout,因为在

    RelativeLayout里面我们可以直接拖拽控件来布局,比较方便,现在对这两种布局偏爱各半吧,LinearLayout里面有一个属性

    android:layout_weight比较重要,我们在开发中常常使用它来调节界面效果,也行很多人还不了解这个属性的使用,不过没关系,我首先先

    带大家理解android:layout_weight属性然后在利用它来实现一个表格效果

    android:layout_weight

    是指LinearLayout先给里面的控件分配完大小之后剩余空间的权重,也许你暂时还是摸不到头脑,不过没有关系,下面我通过例子来解释

    layout_weight到底是什么意思,先看下面的布局文件,一个LinearLayout,里面3个文本框

    xmlns:tools=""

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal">

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:text="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2"

    android:layout_weight="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="1"

    android:text="3"/>

    LinearLayout>

    17bb0d50737da5e61849821b313fce77.png

    为什么效果是这个样子呢,首先3个文本框的宽度都是“wrap_content”,根据视图内部内容自动扩展,LinearLayout

    就先给3个TextView分配空间适当的空间大小,假设为每个TextView分配10dip的宽度,屏幕的宽度为480dip,

    那么LinearLayout的剩余空间就是 480 - 3*10 =

    450dip,由于第一个TextView没有设置layout_weight,所以它的宽度就是10dip,而后面两个TextView设置

    layout_weight都是1,所以后面两个TextView就平均分配LinearLayout的剩余空间,即为 450 / 2  =

    225dip,所以后面两个TextView的宽度为10 + 225 = 235dip

    如果我们实际开发中,你设置里面控件的宽度为”wrap_content“,然后想让里面的控件按比例占用大小,那么你就大错特错了,为什么呢?我们看看下面的代码

    xmlns:tools=""

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal">

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:text="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2222222222222222222"

    android:layout_weight="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="1"

    android:text="3"/>

    LinearLayout>

    你本来想让后面两个TextView平均分配剩余控件,可是下面的效果却并不是你想要的,如下图

    bb4aa3114b7808f821f52f1f373272e4.png

    实因为3个TextView的宽度都是”wrap_content“,LinearLayout会先按照TextView里面的内容分配好大小,由于第2

    个TextView内容很多,所以LinearLayout为其分配更多的空间,使得剩余空间变小了,原理和上面的一样,那么我们在实际开发中要怎么设置

    按比例分配呢。知道原理其实就很简单,比如我们想要3个TextView按照1:2:3的效果

    xmlns:tools=""

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal">

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:layout_weight="1"

    android:text="1"/>

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2222222222222222222"

    android:layout_weight="2"/>

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="3"

    android:text="3"/>

    LinearLayout>

    e6873f12d076ca2a172b703cfdc03005.png

    我们只需要将3个TextView的宽度设置为0dip,首先LinearLayout为3个TextView分配0dip的宽度,剩余空间就是 480 - 3 * 0 = 480dip,然后剩余空间在按照权重分配,所以我们看到的效果就是1:2:3

    通过上面的讲解,也许你会得出一个结论,权重越大,LinearLayout为其分配的空间就越大,我只能说这个结论下有点早了,我们继续看布局

    xmlns:tools=""

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal">

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:layout_weight="1"

    android:text="1"/>

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2"

    android:layout_weight="2"/>

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="2"

    android:text="3"/>

    LinearLayout>

    c43f030e358759d96f499d460862d9bd.png

    许你会很纳闷,怎么不是你想要的1:2:2的效果,我来为你解决疑惑吧,原理跟上面的还是一样的,因为我们这里为每个TextView设置的宽度

    为”fill_parent",即为充满整个LinearLayout,假如屏幕依然为480dip,

    首先LinearLayout为3个TextView分配的宽度为480dip,屏幕剩余宽度为 480 - 3* 480 =

    -960dip,然后3个TextView按照权重分配剩余空间,第一个TextView分配宽度为 480 + (-960) * (1/5) =

    288dip,后面两个TextView就为480 + (-960) * (2/5) = 96dip,比例为3:1:1

    过上面的例子和分析,你是不是对Layout_weight属性理解很透彻了呢,如果我们想要按照权重比例来分配LinearLayout,我们需要将其

    宽度设置为0dip,如果我们将其宽度设置为“fill_parent"的时候,其控件所占的比例不是权重的比例,我们需要自行计算比例

    接下来我们就通过Layout_weight用ListView来实现表格,我们先看Activity的布局

    xmlns:tools=""

    android:orientation="vertical"

    android:layout_margin="10dip"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    layout="@layout/list_item"

    android:id="@+id/table_title"/>

    android:id="@+id/list"

    android:divider="#f9b68b"

    android:dividerHeight="1.0dip"

    android:scrollbars="none"

    android:background="@drawable/listview_bg"

    android:cacheColorHint="@android:color/transparent"

    android:fadingEdge="none"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content">

    ListView>

    LinearLayout>

    一个线性布局,然后就是表格的title布局,下面就是一个ListView了,很简单的布局,接下来就是ListView每个item的布局

    xmlversion="1.0"encoding="UTF-8"?>

    android:orientation="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content">

    android:id="@+id/text_name"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="2"

    android:gravity="center"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:text="姓名"/>

    android:layout_width="1.5dip"

    android:layout_height="fill_parent"

    android:background="#f9b68b"/>

    android:id="@+id/text_sex"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="1"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:gravity="center"

    android:text="性别"/>

    android:layout_width="1.5dip"

    android:layout_height="fill_parent"

    android:background="#f9b68b"/>

    android:id="@+id/text_age"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="1"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:gravity="center"

    android:text="年龄"/>

    LinearLayout>

    3个TextView的宽度都是0dip,那两个View是中间的分割线,3个TextView的权重比值是2:1:1 ,这样子3个TextView不会因为里面内容的长度而变形

    packagecom.example.listviewtable;

    publicclassPerson {

    privateString name;

    privateString sex;

    privateintage;

    publicPerson() {

    super();

    }

    publicPerson(String name, String sex,intage) {

    super();

    this.name = name;

    this.sex = sex;

    this.age = age;

    }

    publicString getName() {

    returnname;

    }

    publicvoidsetName(String name) {

    this.name = name;

    }

    publicString getSex() {

    returnsex;

    }

    publicvoidsetSex(String sex) {

    this.sex = sex;

    }

    publicintgetAge() {

    returnage;

    }

    publicvoidsetAge(intage) {

    this.age = age;

    }

    }

    用来存放ListView每个item数据的实体类

    packagecom.example.listviewtable;

    importjava.util.List;

    importandroid.content.Context;

    importandroid.view.LayoutInflater;

    importandroid.view.View;

    importandroid.view.ViewGroup;

    importandroid.widget.BaseAdapter;

    importandroid.widget.TextView;

    publicclassTableAdapterextendsBaseAdapter {

    privateListlist;

    privateLayoutInflater inflater;

    publicTableAdapter(Context context, Listlist){

    this.list = list;

    inflater = LayoutInflater.from(context);

    }

    @Override

    publicintgetCount() {

    returnlist.size();

    }

    @Override

    publicObject getItem(intposition) {

    returnlist.get(position);

    }

    @Override

    publiclonggetItemId(intposition) {

    returnposition;

    }

    @Override

    publicView getView(intposition, View convertView, ViewGroup parent) {

    Person person = (Person) this.getItem(position);

    ViewHolder viewHolder;

    if(convertView ==null){

    viewHolder = newViewHolder();

    convertView = inflater.inflate(R.layout.list_item, null);

    viewHolder.mTextName = (TextView) convertView.findViewById(R.id.text_name);

    viewHolder.mTextSex = (TextView) convertView.findViewById(R.id.text_sex);

    viewHolder.mTextAge = (TextView) convertView.findViewById(R.id.text_age);

    convertView.setTag(viewHolder);

    }else{

    viewHolder = (ViewHolder) convertView.getTag();

    }

    viewHolder.mTextName.setText(person.getName());

    viewHolder.mTextSex.setText(person.getSex());

    viewHolder.mTextAge.setText(person.getAge() + "岁");

    returnconvertView;

    }

    publicstaticclassViewHolder{

    publicTextView mTextName;

    publicTextView mTextSex;

    publicTextView mTextAge;

    }

    }

    ListView的适配器类,代码很简单,我也没有注释也不去讲解,相信大家都看得懂这些代码,这就是一个基本的自己定义的适配器类,最后就是Activity界面代码

    packagecom.example.listviewtable;

    importjava.util.ArrayList;

    importjava.util.List;

    importandroid.app.Activity;

    importandroid.graphics.Color;

    importandroid.os.Bundle;

    importandroid.view.ViewGroup;

    importandroid.widget.ListView;

    publicclassListTableActivityextendsActivity {

    @Override

    protectedvoidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    //设置表格标题的背景颜色

    ViewGroup tableTitle = (ViewGroup) findViewById(R.id.table_title);

    tableTitle.setBackgroundColor(Color.rgb(255,100,10));

    Listlist = newArrayList();

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    list.add(newPerson("刘德华","男",50));

    ListView tableListView = (ListView) findViewById(R.id.list);

    TableAdapter adapter = newTableAdapter(this, list);

    tableListView.setAdapter(adapter);

    }

    }

    运行程序效果如下:

    addcb47f981f191305495ecd1805694b.png

    通过layout_weight这个属性,我们就轻松实现了表格的功能,通过本文章相信大家对这个属性有了深刻的理解,大家有什么疑问可以在下面留言,我会为大家解答的

    展开全文
  • 今天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知道Android里面专门有一个TableLayout来实现表格的,说实话,我平常开发中用TableLayout还是...

    今天主要说的是对Layout_weight属性的完全解析,以及利用Layout_weight这个属性使用ListView来实现表格的效果,我们都知道Android里面专门有一个TableLayout来实现表格的,说实话,我平常开发中用TableLayout还是比较少的,几乎没有用到,我们完全可以用LinearLayout和RelativeLayout来代替TableLayout的使用,自己开发中主要使用LinearLayout,RelativeLayout这两种布局,不过刚开始我还是偏爱于RelativeLayout,因为在RelativeLayout里面我们可以直接拖拽控件来布局,比较方便,现在对这两种布局偏爱各半吧,LinearLayout里面有一个属性android:layout_weight比较重要,我们在开发中常常使用它来调节界面效果,也行很多人还不了解这个属性的使用,不过没关系,我首先先带大家理解android:layout_weight属性然后在利用它来实现一个表格效果

    Layout_weight属性android:layout_weight是指LinearLayout先给里面的控件分配完大小之后剩余空间的权重,也许你暂时还是摸不到头脑,不过没有关系,下面我通过例子来解释layout_weight到底是什么意思,先看下面的布局文件,一个LinearLayout,里面3个文本框

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:text="1" />

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2"

    android:layout_weight="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="1"

    android:text="3" />

    20e1ff892b6004a925f274857c41ad96.png

    为什么效果是这个样子呢,首先3个文本框的宽度都是“wrap_content”,根据视图内部内容自动扩展,LinearLayout就先给3个TextView分配空间适当的空间大小,假设为每个TextView分配10dip的宽度,屏幕的宽度为480dip, 那么LinearLayout的剩余空间就是 480 - 3*10 = 450dip,由于第一个TextView没有设置layout_weight,所以它的宽度就是10dip,而后面两个TextView设置layout_weight都是1,所以后面两个TextView就平均分配LinearLayout的剩余空间,即为 450 / 2  = 225dip,所以后面两个TextView的宽度为10 + 225 = 235dip

    如果我们实际开发中,你设置里面控件的宽度为”wrap_content“,然后想让里面的控件按比例占用大小,那么你就大错特错了,为什么呢?我们看看下面的代码

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:text="1" />

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2222222222222222222"

    android:layout_weight="1"/>

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="1"

    android:text="3" />

    你本来想让后面两个TextView平均分配剩余控件,可是下面的效果却并不是你想要的,如下图

    d3deed3f84c44c6859ab2432c27fb076.png

    其实因为3个TextView的宽度都是”wrap_content“,LinearLayout会先按照TextView里面的内容分配好大小,由于第2个TextView内容很多,所以LinearLayout为其分配更多的空间,使得剩余空间变小了,原理和上面的一样,那么我们在实际开发中要怎么设置按比例分配呢。知道原理其实就很简单,比如我们想要3个TextView按照1:2:3的效果

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:layout_weight="1"

    android:text="1" />

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2222222222222222222"

    android:layout_weight="2"/>

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="3"

    android:text="3" />

    ee7dc6c6f7cd9a69abc4fd338aa02e69.png

    我们只需要将3个TextView的宽度设置为0dip,首先LinearLayout为3个TextView分配0dip的宽度,剩余空间就是 480 - 3 * 0 = 480dip,然后剩余空间在按照权重分配,所以我们看到的效果就是1:2:3

    通过上面的讲解,也许你会得出一个结论,权重越大,LinearLayout为其分配的空间就越大,我只能说这个结论下有点早了,我们继续看布局

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#0045f5"

    android:gravity="center"

    android:layout_weight="1"

    android:text="1" />

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#00ff47"

    android:gravity="center"

    android:text="2"

    android:layout_weight="2"/>

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:background="#ff5600"

    android:gravity="center"

    android:layout_weight="2"

    android:text="3" />

    04525f5b18b5cb04031fbaf55e716a99.png

    也许你会很纳闷,怎么不是你想要的1:2:2的效果,我来为你解决疑惑吧,原理跟上面的还是一样的,因为我们这里为每个TextView设置的宽度为”fill_parent",即为充满整个LinearLayout,假如屏幕依然为480dip, 首先LinearLayout为3个TextView分配的宽度为480dip,屏幕剩余宽度为 480 - 3* 480 = -960dip,然后3个TextView按照权重分配剩余空间,第一个TextView分配宽度为 480 + (-960) * (1/5) = 288dip,后面两个TextView就为480 + (-960) * (2/5) = 96dip,比例为3:1:1

    通过上面的例子和分析,你是不是对Layout_weight属性理解很透彻了呢,如果我们想要按照权重比例来分配LinearLayout,我们需要将其宽度设置为0dip,如果我们将其宽度设置为“fill_parent"的时候,其控件所占的比例不是权重的比例,我们需要自行计算比例

    实现表格接下来我们就通过Layout_weight用ListView来实现表格,我们先看Activity的布局

    xmlns:tools="http://schemas.android.com/tools"

    android:orientation="vertical"

    android:layout_margin="10dip"

    android:layout_width="match_parent"

    android:layout_height="match_parent" >

    layout="@layout/list_item"

    android:id="@+id/table_title"/>

    android:id="@+id/list"

    android:divider="#f9b68b"

    android:dividerHeight="1.0dip"

    android:scrollbars="none"

    android:background="@drawable/listview_bg"

    android:cacheColorHint="@android:color/transparent"

    android:fadingEdge="none"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content" >

    一个线性布局,然后就是表格的title布局,下面就是一个ListView了,很简单的布局,接下来就是ListView每个item的布局

    android:orientation="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content" >

    android:id="@+id/text_name"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="2"

    android:gravity="center"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:text="姓名" />

    android:layout_width="1.5dip"

    android:layout_height="fill_parent"

    android:background="#f9b68b"/>

    android:id="@+id/text_sex"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="1"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:gravity="center"

    android:text="性别" />

    android:layout_width="1.5dip"

    android:layout_height="fill_parent"

    android:background="#f9b68b"/>

    android:id="@+id/text_age"

    android:layout_width="0dip"

    android:layout_height="wrap_content"

    android:layout_weight="1"

    android:paddingBottom="10dip"

    android:paddingTop="10dip"

    android:gravity="center"

    android:text="年龄" />

    3个TextView的宽度都是0dip,那两个View是中间的分割线,3个TextView的权重比值是2:1:1 ,这样子3个TextView不会因为里面内容的长度而变形

    package com.example.listviewtable;

    public class Person {

    private String name;

    private String sex;

    private int age;

    public Person() {

    super();

    }

    public Person(String name, String sex, int age) {

    super();

    this.name = name;

    this.sex = sex;

    this.age = age;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public String getSex() {

    return sex;

    }

    public void setSex(String sex) {

    this.sex = sex;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    }

    用来存放ListView每个item数据的实体类

    package com.example.listviewtable;

    import java.util.List;

    import android.content.Context;

    import android.view.LayoutInflater;

    import android.view.View;

    import android.view.ViewGroup;

    import android.widget.BaseAdapter;

    import android.widget.TextView;

    public class TableAdapter extends BaseAdapter {

    private List list;

    private LayoutInflater inflater;

    public TableAdapter(Context context, List list){

    this.list = list;

    inflater = LayoutInflater.from(context);

    }

    @Override

    public int getCount() {

    return list.size();

    }

    @Override

    public Object getItem(int position) {

    return list.get(position);

    }

    @Override

    public long getItemId(int position) {

    return position;

    }

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

    Person person = (Person) this.getItem(position);

    ViewHolder viewHolder;

    if(convertView == null){

    viewHolder = new ViewHolder();

    convertView = inflater.inflate(R.layout.list_item, null);

    viewHolder.mTextName = (TextView) convertView.findViewById(R.id.text_name);

    viewHolder.mTextSex = (TextView) convertView.findViewById(R.id.text_sex);

    viewHolder.mTextAge = (TextView) convertView.findViewById(R.id.text_age);

    convertView.setTag(viewHolder);

    }else{

    viewHolder = (ViewHolder) convertView.getTag();

    }

    viewHolder.mTextName.setText(person.getName());

    viewHolder.mTextSex.setText(person.getSex());

    viewHolder.mTextAge.setText(person.getAge() + "岁");

    return convertView;

    }

    public static class ViewHolder{

    public TextView mTextName;

    public TextView mTextSex;

    public TextView mTextAge;

    }

    }

    ListView的适配器类,代码很简单,我也没有注释也不去讲解,相信大家都看得懂这些代码,这就是一个基本的自己定义的适配器类,最后就是Activity界面代码

    package com.example.listviewtable;

    import java.util.ArrayList;

    import java.util.List;

    import android.app.Activity;

    import android.graphics.Color;

    import android.os.Bundle;

    import android.view.ViewGroup;

    import android.widget.ListView;

    public class ListTableActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    //设置表格标题的背景颜色

    ViewGroup tableTitle = (ViewGroup) findViewById(R.id.table_title);

    tableTitle.setBackgroundColor(Color.rgb(255, 100, 10));

    List list = new ArrayList();

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    list.add(new Person("刘德华", "男", 50));

    ListView tableListView = (ListView) findViewById(R.id.list);

    TableAdapter adapter = new TableAdapter(this, list);

    tableListView.setAdapter(adapter);

    }

    }

    运行程序效果如下:

    5af23abebc5277bc595d771e4c9e7993.png

    通过layout_weight这个属性,我们就轻松实现了表格的功能,通过本文章相信大家对这个属性有了深刻的理解。

    展开全文
  • 这是我的.9图片:在popupwindow里头就变形了。。。这是popupwindow的布局文件:android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical">android:layout_width=...
  • 字体加粗(font-weight

    千次阅读 2021-05-06 08:20:20
    1.基础语法font-weight 属性设置文本的粗细。使用 bold 关键字可以将文本设置为粗体。关键字包含 100 ~ 900指定了 9 级加粗度。如果一个字体内置了这些加粗级别,那么这些数字就直接映射到预定义的级别,100 对应最...
  • Android布局之Layout_weight属性解析

    千次阅读 2013-08-07 10:06:34
    在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的...
  • OpenGL实现3D自由变形

    千次阅读 2017-07-22 19:05:04
    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级...CSDN视频网址:http://edu.csdn.net/lecturer/144 以前有朋友问我,关于变形动画是如何实现的,实现方式主要有两种,一种是通过美术人员利用Max工具自己调出动画,这种
  • Android聊天背景图片变形,一般是由于键盘引起的。可以参看StackOverFlow解决的地址:外链网址已屏蔽我这里用的也是参考这里的方法:解决方法很简单:1、在AndroidManifest.xml文件里面的Activity配置:android:...
  • 该特效中,通过Three.js来制作从一幅缩略图,扭曲变形为全屏大图的动画特效,共有6种炫酷的动画效果。视频加载中...该特效提供了一个控制面板来控制图像扭曲的动画,你可以自行调节效果。碉堡了,基于HTML5 WebGL的...
  • 混合变形器(2)

    千次阅读 2018-05-21 10:36:10
    这次在官方文档上继续学习了blend shape的相关...“目标权重”(Target weight)滑块每个滑块向您提供一种快速设置目标权重的方法。默认情况下,每个目标滑块设置最小值(默认值为 0.000)到最大值(默认值为 1.0...
  • 深度学习-生成模型:WGAN【Lipschitz:Weight Clipping】--> WGAN-GP【Lipschitz:Gradient Penalty】 一、WGAN相比较GAN的改进点 二、原始GAN究竟出了什么问题 1、原始GAN的损失函数 1.1 【判别器】的损失函数 1.2...
  • MLS算法论文,We provide an image deformation method based on Moving LeastSquares using various classes of linear functions including affine,similarity and rigid transformations. These deformationsare ...
  • 1049. Last Stone Weight II

    千次阅读 2019-05-19 12:26:28
    We have a collection of rocks, each rock has a positive integer weight. Each turn, we chooseany two rocksand smash them together. Suppose the stones have weightsxandywithx <= y. The resul...
  • 网格变形动画MeshTransform

    千次阅读 2019-11-02 21:49:41
    这个系数并不像是 NURBS 公式中的 weight 系数。不幸的是,尽管我搜遍了几百行浮点汇编代码还是没有什么收获。 尽管 NURBS 曲面极其强大,它们也无法让遍历顶点的过程变快。在我定义自己的网格时,我需要完全的控制...
  • font-weight:bold; color:#FFFFFF; letter-spacing:9px; padding-left:10px;} .litext2{ font-size:11px; padding-left:10px; line-height:20px; color:#FFFFFF;} .admin{ float:right; width:500px; height:60px;...
  • Android 对Layout weight属性完全解析以及使用ListView来实现表格
  • 忽略这个哗众取宠的标题,首先,为什么会有MorphAnimation,可能是我总觉得变形动画很有前途,因为看到一堆静态的东西我老是有一种想让他动一动的冲动,而骨骼蒙皮动画的前期准备工作又过于复杂了,起初我在Max里面...
  • 基于移动最小二乘的图像变形技术 / Warp.h: interface for the CWarp class. // ////////////////////////////////////////////////////////////////////// #include #include #include #include #include ...
  • 查找网上资料,才知道这个问题的正式的名字叫Hamming weight(汉明重量)。2.问题描述对于一个无符号整型数,求其二进制表示中1的个数。比如12的以32位无符号整型来表示,其二进制为:00000000 000000
  • font-weight允许值 normal | bold | bolder | lighter | l00 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 font-weight初始值 normal font-weight可否继承 是 font-weight适用于 所有元素 ...
  • reference: Efficient Morph Target Animation Using OpenGL ES 3.0 James L. Jones 介绍 移动平台上对高质量图形渲染的需求推进了GPU和图形API的发展,...目标变形动画通常要求美术离线制作模型的多个姿态,然后...
  • css font-weight原理

    2016-05-20 12:13:23
    因为今天我要设置一个字符加粗,然后就用font-weight:200,没有任何效果。现在看来很可笑,400才相当于normal,200怎么加粗,奇怪的是也没有变细。所以得研究一下font-weight的工作原理,以下正文。 一、使用介绍 ...
  • 论文: Image Warping with Scattered Image Warping with Scattered Data Interpolation 算法思路: 算法优缺点: ...优点:实现简单,cpu实现,gpu实现都友好 ...缺点:速度与点的个数,图片长,宽,这3个指标成...
  • pandas 变形

    2020-04-28 21:10:40
    变形一、透视表1. pivot2. pivot_table3. crosstab(交叉表)二、其他变形方法1. melt2. 压缩与展开三、哑变量与因子化1. Dummy Variable(哑变量)2. factorize方法 一、透视表 1. pivot 一般状态下,数据在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,515
精华内容 4,606
关键字:

weight怎么变形