从简便的方式,继承LinearLayout再布局了添加视图,使其左右滚动。
主界面Activity:
- packagecom.xmz.activity;
- importjava.util.HashMap;
- importjava.util.Map;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- publicclassMainActivityextendsActivity{
- privateMovieLayoutmovieLayout;
- privateMovieAdapteradapter;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- movieLayout=(MovieLayout)findViewById(R.id.movieLayout);
- adapter=newMovieAdapter(this);
- for(inti=0;i<10;i++){
- Map<String,Object>map=newHashMap<String,Object>();
- map.put("image",getResources().getDrawable(R.drawable.image));
- map.put("text","电影"+(i+1));
- adapter.addObject(map);
- }
- movieLayout.setAdapter(adapter);
- }
- }
显示一连串视图的MovieLayout:
- packagecom.xmz.activity;
- importjava.util.Map;
- importandroid.content.Context;
- importandroid.util.AttributeSet;
- importandroid.view.View;
- importandroid.widget.LinearLayout;
- importandroid.widget.LinearLayout.LayoutParams;
- importandroid.widget.Toast;
- publicclassMovieLayoutextendsLinearLayout{
- privateMovieAdapteradapter;
- privateContextcontext;
- publicMovieLayout(Contextcontext,AttributeSetattrs){
- super(context,attrs);
- this.context=context;
- }
- publicvoidsetAdapter(MovieAdapteradapter){
- this.adapter=adapter;
- for(inti=0;i<adapter.getCount();i++){
- finalMap<String,Object>map=adapter.getItem(i);
- Viewview=adapter.getView(i,null,null);
- view.setPadding(10,0,10,0);
- view.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- Toast.makeText(context,"您点击了"+map.get("text"),Toast.LENGTH_SHORT).show();
- }
- });
- this.setOrientation(HORIZONTAL);
- this.addView(view,newLinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
- }
- }
- }
贴出工程下载地址:http://download.youkuaiyun.com/source/3407806