Android 高级控件(三)
来源:互联网 发布:数据汇集平台 编辑:程序博客网 时间:2024/06/06 02:05
1.RecyclerView 5.0
添加RecyclerView引用:compile 'com.android.support:recyclerview-v7:24.0.0-alpha1'(build.gradle)<1>布局方式:LayoutManager 横向布局 垂直布局 网格布局Grid<2>分割线:ItemDecoration Github托管源码:https://github.com/yqritc/RecyclerView-FlexibleDivider
<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rv_main_recycler" ></android.support.v7.widget.RecyclerView>
activity:
private RecyclerView rv_main_list; private List<String> list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv_main_list = (RecyclerView) findViewById(R.id.rv_main_recycler); for (int i = 1; i <=10 ; i++) { list.add("张"+i); } //制定默认的排列方式 //rv_main_list.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,true)); rv_main_list.setLayoutManager(new GridLayoutManager(this,2,GridLayoutManager.HORIZONTAL,false)); rv_main_list.setAdapter(new MyAdapter()); } class MyAdapter extends RecyclerView.Adapter{ class MyViewHolder extends RecyclerView.ViewHolder{ public TextView textview; public MyViewHolder(View itemView) { super(itemView); textview= (TextView) itemView.findViewById(android.R.id.text1); } } //类似 BaseAdapter中的 getView() //RecyclerView.ViewHolder 类似 ItemTag @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v=getLayoutInflater().inflate(android.R.layout.simple_list_item_1,null); return new MyViewHolder(v); } //给控件绑值 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { MyViewHolder myVH= (MyViewHolder) holder; myVH.textview.setText(list.get(position)); } @Override public int getItemCount() { return list.size(); } }
2.Gallery 画廊—-过时
完成一个图片的滑动切换效果:
private Gallery g_gallery_image; private int images[]={R.drawable.image1,R.drawable.image3,R.drawable.image4}; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gallery); g_gallery_image = (Gallery) findViewById(R.id.g_gallery_image); g_gallery_image.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return images.length; } @Override public Object getItem(int position) { return images[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView=new ImageView(GalleryActivity.this); Gallery.LayoutParams layoutParams=new Gallery.LayoutParams(300,400); imageView.setLayoutParams(layoutParams); imageView.setImageResource(images[position]); imageView.setScaleType(ImageView.ScaleType.FIT_XY); return imageView; } }
3.ViewPager(Gallery的替代品)
<1>引导页 适配器 PagerAdapter 滑动监听 addOnPageChangeListener 导航点 github开源框架:ViewPagerIndicator 属性: setRadius:设置半径 setPageColor:点的背景颜色 setBackgroundColor:控件的背景颜色 setFillColor:设置点的背景颜色 setStrokeColor:设置点背景的边框颜色 进入主界面
<2>ViewPager+Activity(View)—->QQ好友分组 + ListView分组的滑动切换(包含多个activity的切换)
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mmp_mvp" ></android.support.v4.view.ViewPager>
activity:
private ViewPager mmp_mvp; private List<View> views; private LocalActivityManager localActivityManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_vp); mmp_mvp = (ViewPager) findViewById(R.id.mmp_mvp); views=new ArrayList<>(); // LocalActivityManager是Android封装的把activity转换成view对象的一个api. localActivityManager=new LocalActivityManager(this,true); localActivityManager.dispatchCreate(savedInstanceState); //页面转换成视图 Intent intent=new Intent(this,QQActivity.class);//第一个页面 View view=localActivityManager.startActivity("QQActivity",intent).getDecorView(); views.add(view); Intent intent2=new Intent(this,SzLvActivity.class);//第二个页面 views.add(localActivityManager.startActivity("SzLvActivity",intent2).getDecorView()); mmp_mvp.setAdapter(new MyAdapter()); } class MyAdapter extends PagerAdapter{ @Override public int getCount() { return views.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { View v=views.get(position); container.addView(v); return v; } @Override public void destroyItem(ViewGroup container, int position, Object object) { View v=views.get(position); container.removeView(v); } }
阅读全文
0 0
- Android 高级控件(三)
- Android—高级控件(三)下拉刷新
- Android 高级控件(一)
- Android 高级控件(二)
- 9.高级控件(三)之 RecyclerView
- IOS高级控件(三)
- 65. XPages自定义控件(三)高级搜索之三
- Android—高级控件(二)ListView
- Android高级控件
- Android 高级控件
- android高级控件ListView
- Android 高级控件
- Android高级控件
- Android的高级控件
- Android 高级控件
- android高级控件1
- ListView android高级控件
- android高级控件-ListView
- Java网络编程重点总结
- mongo索引创建和索引分析
- 搜索中的记录步数
- Java高级部分--线程重点总结
- 手把手教你Tiny4412 Android5.0 定制 按下开发板上的按键通过广播发送到应用层
- Android 高级控件(三)
- Tomcat 7.0多端口配置
- 奇偶剪枝
- 巡视整改:北京大学 pk 清华大学
- Linux驱动学习笔记----------触摸屏驱动
- 【Gradle】Gradle的安装与配置
- CMD命令结果保存至文本TXT
- 数学建模--迪克斯特拉( Dijkstra)算法
- 秋实大哥与小朋友 UESTC