从简便的方式,继承LinearLayout再布局了添加视图,使其左右滚动。
主界面Activity:
- package com.xmz.activity;
- import java.util.HashMap;
- import java.util.Map;
- import android.app.Activity;
- import android.os.Bundle;
- public class MainActivity extends Activity {
- private MovieLayout movieLayout;
- private MovieAdapter adapter;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- movieLayout=(MovieLayout)findViewById(R.id.movieLayout);
- adapter=new MovieAdapter(this);
- for(int i=0;i<10;i++){
- Map<String,Object> map=new HashMap<String,Object>();
- map.put("image", getResources().getDrawable(R.drawable.image));
- map.put("text", "电影"+(i+1));
- adapter.addObject(map);
- }
- movieLayout.setAdapter(adapter);
- }
- }
显示一连串视图的MovieLayout:
- package com.xmz.activity;
- import java.util.Map;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.view.View;
- import android.widget.LinearLayout;
- import android.widget.LinearLayout.LayoutParams;
- import android.widget.Toast;
- public class MovieLayout extends LinearLayout {
- private MovieAdapter adapter;
- private Context context;
- public MovieLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- this.context=context;
- }
- public void setAdapter(MovieAdapter adapter) {
- this.adapter = adapter;
- for(int i=0;i<adapter.getCount();i++){
- final Map<String,Object> map=adapter.getItem(i);
- View view=adapter.getView(i, null, null);
- view.setPadding(10, 0, 10, 0);
- view.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(context, "您点击了"+map.get("text"), Toast.LENGTH_SHORT).show();
- }
- });
- this.setOrientation(HORIZONTAL);
- this.addView(view,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
- }
- }
- }
贴出工程下载地址:http://download.csdn.net/source/3407806