一个LinearLayout里面有斯个ImageView<LinearLayout android:gravity="center_horizontal" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="fill_parent">
        <ImageView android:src="@drawable/icon" android:layout_height="wrap_content" android:id="@+id/imageView1" android:layout_width="wrap_content"></ImageView>
        <ImageView android:src="@drawable/icon" android:layout_height="wrap_content" android:id="@+id/imageView2" android:layout_width="wrap_content"></ImageView>
        <ImageView android:src="@drawable/icon" android:layout_height="wrap_content" android:id="@+id/imageView3" android:layout_width="wrap_content"></ImageView>
        <ImageView android:src="@drawable/icon" android:layout_height="wrap_content" android:id="@+id/imageView4" android:layout_width="wrap_content"></ImageView>
    </LinearLayout>
现在LinearLayout与屏幕等宽,四个ImageView居中。现在四个ImageView在LinearLayout中紧挨着水平分布的,我需要离散的等距离分布在LinearLayout里面,当然,设置margin可以做到,但设置死了又不能与不同大小的屏幕匹配,如何使LinearLayout里面的ImageView可以自适应不同屏幕大小而离散等距离分布呢??
多谢

解决方案 »

  1.   

    呵呵,我又来了。都是我COPY别人的,代码中我自己的东西<=0,呵呵。先谈谈我的观点,你这个全靠布局实现。  我现在这个不用布局实现,而是用GridView网格视图去实现,是典型的,用户喜爱的,等距排列。你自己体会,感觉好,就把分给我啊。以后互相学习啊 。你自己放个image1.jpg格式或者.png格式图片到res -->drawable任意个文件里 。保存,File-->Refresh.就可以在gen-->com-->R.java里看到了。<?xml version="1.0" encoding="utf-8"?>
    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        
        android:id="@+id/GridView01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        
        android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:columnWidth="90dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
        
    />
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.Toast;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.GridView;
    /**We have to define a class ImageAdapter inherited BaseAdapter to store pictures 
     * which we want to visit.
     * Look like RectAngle.
     */
    public class MainActivity extends Activity {    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            GridView m_GridView=(GridView)findViewById(R.id.GridView01);
            m_GridView.setAdapter(new ImageAdapter(this));//Add Items to m_GridView
            
            m_GridView.setBackgroundResource(R.drawable.image1);
            
            m_GridView.setOnItemClickListener(new OnItemClickListener()
            {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    {
    Toast.makeText(MainActivity.this, "Look,there's a beautiful girl, wow!", Toast.LENGTH_LONG).show();
    }
            
    });
        }
    }import android.content.Context;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;public  class  ImageAdapter extends BaseAdapter
    {
    private Context m_Context;

    //Define Integer[],the source of pictures
    private Integer[] m_ImageID=
    {
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    R.drawable.icon,
    };

    public ImageAdapter(Context context)
    {
    m_Context=context;
    }

    // 获取图片的个数
    public int getCount()
    {
    return m_ImageID.length;
    } // 获取图片在库中的位置
    public Object getItem(int position)
    {
    return position;
    } // 获取图片ID
    public long getItemId(int position)
    {
    return position;
    }

    public View getView(int position, View convertView, ViewGroup parent)
    {
    ImageView m_ImageView;
    if (convertView == null)
    {
    // 给ImageView设置资源
    m_ImageView = new ImageView(m_Context);
    // 设置显示比例类型
    m_ImageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    }
    else
    {
    m_ImageView = (ImageView) convertView;
    } m_ImageView.setImageResource(m_ImageID[position]);
    return m_ImageView;
    }

    }
      

  2.   

    其实我觉得你不需要4个ImageView,linearlayout里就一个gridview就行了,2x2的gridview,系统会帮你自适应的。