Android 3D滑动菜单完全解析,实现推拉门式的立体(4)

可以看到,在最外层的ThreeDSlidingLayout布局里面,我们放入了三个直接子布局,第一个RelativeLayout也就是左侧布局了,里面简单地放了一个TextView和一个按钮。第二个LinearLayout是右侧布局,里面放入了一个按钮和一个ListView,都是用于显示左侧布局而准备的。第三个是Image3dView,当然是用于在滑动过程中显示左侧布局的镜像图片了。

最后,打开或新建MainActivity作为程序的主Activity,在里面加入如下代码:

public class MainActivity extends Activity {

/**
  * 侧滑布局对象,用于通过手指滑动将左侧的菜单布局进行显示或隐藏。
  */
 private ThreeDSlidingLayout slidingLayout;

/**
  * menu按钮,点击按钮展示左侧布局,再点击一次隐藏左侧布局。
  */
 private Button menuButton;

/**
  * 放在content布局中的ListView。
  */
 private ListView contentListView;

/**
  * 作用于contentListView的适配器。
  */
 private ArrayAdapter<String> contentListAdapter;

/**
  * 用于填充contentListAdapter的数据源。
  */
 private String[] contentItems = { "Content Item 1", "Content Item 2", "Content Item 3",
   "Content Item 4", "Content Item 5", "Content Item 6", "Content Item 7",
   "Content Item 8", "Content Item 9", "Content Item 10", "Content Item 11",
   "Content Item 12", "Content Item 13", "Content Item 14", "Content Item 15",
   "Content Item 16" };

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  slidingLayout = (ThreeDSlidingLayout) findViewById(R.id.slidingLayout);
  menuButton = (Button) findViewById(R.id.menuButton);
  contentListView = (ListView) findViewById(R.id.contentList);
  contentListAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1,
    contentItems);
  contentListView.setAdapter(contentListAdapter);
  // 将监听滑动事件绑定在contentListView上
  slidingLayout.setScrollEvent(contentListView);
  menuButton.setOnClickListener(new OnClickListener() {
   @Override
   public void onClick(View v) {
    if (slidingLayout.isLeftLayoutVisible()) {
     slidingLayout.scrollToRightLayout();
    } else {
     slidingLayout.scrollToLeftLayout();
    }
   }
  });
  contentListView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    String text = contentItems[position];
    Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
   }
  });
 }
}

这些代码应该都非常简单和眼熟了吧,和以前滑动菜单中的代码完全一样,调用ThreeDSlidingLayout的setScrollEvent方法,将ListView作为绑定布局传入,这样就可以通过拖动ListView来显示或隐藏左侧布局。并且在按钮的点击事件里也加入了显示和隐藏左侧布局的逻辑。

好了,这样所有的编码工作就已经完成了,让我们来运行一下吧,效果如下图所示:

怎么样?效果非常炫丽吧!其实只要对Camera进行巧妙地运用,还可以编写出很多非常精彩的特效,就看你敢不敢去发挥你的想象力了。

好了,今天的讲解到此结束,有疑问的朋友请在下面留言。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/d9508c55b1f8fde591652298eb518c6b.html