侧滑栏&动态添加轮播图下的按钮&shape绘制按钮
来源:互联网 发布:mobi for mac 编辑:程序博客网 时间:2024/05/21 10:24
//Shape绘制形状//选中状态
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#ff0000" /> <corners android:radius="5dip" /></shape>//Shape绘制形状//未选中状态
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#0000cc" /> <corners android:radius="5dip" /></shape>
//Layout布局
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.pm2.MainActivity"> <LinearLayout android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:background="#FFFF00" android:choiceMode="singleChoice"> <ListView android:id="@+id/lv" android:layout_width="wrap_content" android:layout_height="match_parent" /> </LinearLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="200dp"> </android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/li_dot" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="180dp" android:orientation="horizontal"></LinearLayout> </RelativeLayout></android.support.v4.widget.DrawerLayout>
//MainActivity
package com.bwie.pm2;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ListView;import com.bwie.pm2.adapter.lv_adapter;import com.bwie.pm2.adapter.vp_adapter;import com.bwie.pm2.bean.jsonbean;import com.bwie.pm2.bean.lv_bean;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity { private ListView lv; private LinkedList<lv_bean> lv_list = new LinkedList<lv_bean>(); private ArrayAdapter<String> adapter; private String urls = "http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=" + "0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1" + "LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHl" + "UYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOi" + "LlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uI" + "joiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVm" + "YWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5" + "faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOi" + "JSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6M" + "TEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoi" + "SG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSI" + "sIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIj" + "oiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzN" + "jUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"; private ViewPager viewpage; private ArrayList<lv_bean> vp_list = new ArrayList<lv_bean>(); private LinearLayout li_dot; private ArrayList<ImageView> dot_list = new ArrayList<ImageView>(); private ImageView imgView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView();//初始化控件 initData();//初始化数据// initDot();//初始化轮播图下的点 carouselImage();//轮播的方法 } //初始化各个控件的id private void initView() { lv = (ListView) findViewById(R.id.lv); viewpage = (ViewPager) findViewById(R.id.vp); li_dot = (LinearLayout) findViewById(R.id.li_dot); } /* 在轮播图里面加点,使轮播图在滚动的时候,点可以随之更换 */ private void initDot() { for (int i = 0; i < vp_list.size(); i++) { imgView = new ImageView(MainActivity.this); if (i == 0) { imgView.setImageResource(R.drawable.dot_focuable); } else { imgView.setImageResource(R.drawable.dot_normal); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20); params.setMargins(20, 10, 10, 10); li_dot.addView(imgView, params); dot_list.add(imgView); } //viewpage的适配器 viewpage.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i = 0; i < dot_list.size(); i++) { if (i == position % dot_list.size()) {//如果图片的当前下标等于点的当前下标,就设置图片 dot_list.get(i).setImageResource(R.drawable.dot_focuable); } else { dot_list.get(i).setImageResource(R.drawable.dot_normal); } } } @Override public void onPageScrollStateChanged(int state) { } }); } //计时操作,实现轮播 private void carouselImage() { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { int i = viewpage.getCurrentItem() + 1; viewpage.setCurrentItem(i); if (i >= vp_list.size()) { viewpage.setCurrentItem(0); } } }); } }, 2000, 3000); } Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); //解析网络json串,自动解析 Gson gson = new Gson(); jsonbean jsonbean = gson.fromJson((String) msg.obj, jsonbean.class); com.bwie.pm2.bean.jsonbean.DataBean data = jsonbean.getData(); List<com.bwie.pm2.bean.jsonbean.DataBean.ComicsBean> comics = data.getComics(); for (int i = 0; i < comics.size(); i++) { String title_url = comics.get(i).getTitle(); String image_url = comics.get(i).getCover_image_url(); lv_list.add(new lv_bean(title_url, image_url)); vp_list.add(new lv_bean(image_url)); } lv.setAdapter(new lv_adapter(MainActivity.this, lv_list)); viewpage.setAdapter(new vp_adapter(MainActivity.this, vp_list)); initDot();//初始化轮播图下的点 } }; //初始化数据 private void initData() { new Thread() { @Override public void run() { super.run(); try { URL url = new URL(urls); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); //判断返回的响应码 if (responseCode == 200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder builder = new StringBuilder(); String stringTemp = ""; while ((stringTemp = reader.readLine()) != null) { builder.append(stringTemp); } //发送线程 Message message = new Message(); message.obj = builder.toString(); Log.e("asdasd", "rerere" + message.obj); handler.sendMessage(message); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); }}//PagerAdapter适配器
package com.bwie.day14;import android.content.Context;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;/** * author:Created by WangZhiQiang on 2017/10/17. */public class vpadapter extends PagerAdapter { private Context con; private ArrayList<vpbean> list; private View view; public vpadapter(Context con, ArrayList<vpbean> list) { this.con = con; this.list = list; } @Override public int getCount() {//特别注意 return Integer.MAX_VALUE; } @Override public Object instantiateItem(ViewGroup container, int position) { view = View.inflate(con, R.layout.layout_info, null); ImageView img = (ImageView) view.findViewById(R.id.img);//特别注意list.get(position % list.size()).getImg();就可以无限轮播了 ImageLoader.getInstance().displayImage(list.get(position % list.size()).getImg(), img); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) {// super.destroyItem(container, position, object); container.removeView((View) object); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; }}
//MainActivity
阅读全文
1 0
- 侧滑栏&动态添加轮播图下的按钮&shape绘制按钮
- gridview动态添加按钮
- UIActionSheet动态添加按钮
- Coolite动态添加按钮
- 动态添加按钮
- 添加动态按钮
- 动态添加UIActionSheet按钮
- 动态添加按钮
- iOS 动态添加按钮
- 动态添加UIActionSheet按钮
- 动态添加button按钮
- 动态添加发帖按钮
- 一种动态添加工具按钮的方式
- Android 动态添加自定义式样的按钮
- 给动态添加的按钮添加动态事件
- Android使用XML Shape绘制带阴影效果的圆形按钮
- Android使用XML Shape绘制带阴影效果的圆形按钮
- Android使用XML Shape绘制带阴影效果的圆形按钮
- C语言字符串常用函数
- Ubuntu 15.10快速搭建本地源服务器
- 容器的排序-1
- 表单文字个数不同左右对齐方式
- Redis实现分布式session功能的共享
- 侧滑栏&动态添加轮播图下的按钮&shape绘制按钮
- TabLayout滑动和viewPager的联动+drawerLayout的侧拉
- ZigBee基础实验(二)--中断
- 《剑指offer》刷题笔记(递归和循环):矩形覆盖
- (八)php参考手册---Date/Time函数
- android 按行读取txt文本内容
- Java.util.concurrent包学习(三)同步集合
- SQL基础
- 实现xxxAware接口直接访问Servlet API