Android布局

安卓学习文档
http://www.android-doc.com/guide/topics/ui/layout/relative.html

1.安卓像素单位为dp
在这里插入图片描述
2.ListView(GridView)
想用ListView(GridView) 需要使用适配器
适配器:是java的23种设计模式中的一种,适配器模式

在android中适配是指安卓提供的一些类,使用继承,重写里面方法
BaseAdapter ArrayAdapter
作用:对于特定的需要数据处理的布局,把得到的数据按照适配器规定方法放入到界面
当布局页面需要根据数据的交互需要使用ListView GridView
例:GridView中加入图片

public class Main4Activity extends AppCompatActivity {
  int[] img={R.drawable.androidfilemanager,R.drawable.angrybirds,R.drawable.calculator,R.drawable.fruit,R.drawable.rope};
    private GridView gridView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        gridView= (GridView) findViewById(R.id.gridView);
        gridView.setAdapter(new MyAdapter());
    }
    class  MyAdapter extends BaseAdapter{
        //获取数据个数,数据个数决定控件个数,决定了调用多少次getView
        @Override
        public int getCount() {
            return img.length;
        }
        //获取数据
        @Override
        public Object getItem(int position) {
            return img[position];
        }
        //获取位置
        @Override
        public long getItemId(int position) {
            return position;
        }
        //得到控件
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView view1;
            //缓存,避免浪费
            if(convertView==null){
                 view1=new ImageView(Main4Activity.this);
            }else{
                view1= (ImageView) convertView;
            }
            view1.setImageResource(img[position]);

            return view1;
        }
    }

}

在这里插入图片描述
在这里插入图片描述
结果展示
在这里插入图片描述
改变样式
在这里插入图片描述
效果展示
在这里插入图片描述
例:ListView中加入图片

public class MainActivity extends AppCompatActivity {
    int[] img={R.drawable.androidfilemanager,R.drawable.angrybirds,R.drawable.calculator,R.drawable.fruit,R.drawable.rope};
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView= (ListView) findViewById(R.id.listView);
        listView.setAdapter(new  MyAdapter1());
    }
    class MyAdapter1 extends BaseAdapter{

        @Override
        public int getCount() {
            return img.length;
        }

        @Override
        public Object getItem(int position) {
            return img[position];
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView view1;
            if(convertView==null){
                view1=new ImageView(MainActivity.this);

            }else{
                view1= (ImageView) convertView;
            }
            view1.setImageResource(img[position]);
            return view1;
        }
    }
}

结果显示
在这里插入图片描述
BaseAdapter的每一个方法是干吗的
给GridView中的控件加事件叫setOnItemClickListener

3.ArrayAdapter只能适配文字 new ArrayAdapter()

public class Main5Activity extends AppCompatActivity {
private List<String> list=new ArrayList<String>();
    private ListView listView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);
        listView= (ListView) findViewById(R.id.listView2);
        ArrayAdapter arrayAdapter=new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,getList());
        listView.setAdapter(arrayAdapter);
    }

    public List<String> getList() {
        for(int i=0;i<10;i++){
            list.add("联系人"+i);
        }
        return list;
    }
}

4.跳转页面Intent(从哪,去哪)

  gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(Main4Activity.this,""+position,Toast.LENGTH_LONG).show();
//跳转页面Intent(从哪,去哪)
                Intent intent=new Intent(Main4Activity.this,MainActivity.class);
                startActivity(intent);

            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值