drawlayble

来源:互联网 发布:ubuntu xampp panel 编辑:程序博客网 时间:2024/06/07 14:54

1activity_main.xml

<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout    android:id="@+id/draw"    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.example.xin09921.MainActivity">    <HorizontalScrollView        android:id="@+id/hsv"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <LinearLayout            android:id="@+id/hll"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal"            ></LinearLayout>    </HorizontalScrollView>    <android.support.v4.view.ViewPager        android:id="@+id/hvp"        android:layout_marginTop="50dp"        android:layout_width="match_parent"        android:layout_height="match_parent"        />    <LinearLayout        android:id="@+id/cll"        android:layout_width="300dp"        android:layout_height="match_parent"        android:orientation="vertical"        android:layout_gravity="left"        android:choiceMode="singleChoice"        android:background="#fe0"        >        <TextView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="侧滑栏"            android:textSize="30dp"            />        <ListView            android:id="@+id/clv"            android:layout_width="match_parent"            android:layout_height="wrap_content" />    </LinearLayout></android.support.v4.widget.DrawerLayout>

2fragmen_pull

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">  <com.handmark.pulltorefresh.library.PullToRefreshListView    android:id="@+id/pullLv"    android:layout_width="match_parent"    android:layout_height="match_parent"></com.handmark.pulltorefresh.library.PullToRefreshListView></LinearLayout>

3pull_item_layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/tv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="正在加载..."        android:textSize="30dp"        />    <ImageView        android:id="@+id/iv"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:src="@mipmap/ic_launcher"        /></LinearLayout>
4

activity_view_pager.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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.example.xin09921.Main2Activity">    <android.support.v4.view.ViewPager        android:id="@+id/vp"        android:layout_width="match_parent"        android:layout_height="match_parent"        tools:layout_editor_absoluteY="8dp"        tools:layout_editor_absoluteX="8dp" />    <LinearLayout        android:id="@+id/ll"        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:gravity="center"        ></LinearLayout></RelativeLayout>

5主activty

package com.example.xin09921;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.HorizontalScrollView;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private ViewPager vp;    private HorizontalScrollView hsv;    private LinearLayout hll;    private LinearLayout cll;    private ListView clv;    private String[] titles = new String[]{"福利","Android","iOS","休息视频","拓展资源","前端","all"};    private DrawerLayout draw;    private List<TextView> list;    private Mvpdapter mvpdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        intiView();        FragmentManager supportFragmentManager = getSupportFragmentManager();         mvpdapter = new Mvpdapter(supportFragmentManager);        vp.setAdapter(mvpdapter);        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                for (int i=0;i<list.size();i++)                {                    if (position==i)                    {                        list.get(i).setTextColor(Color.RED);                    }else {                        list.get(i).setTextColor(Color.BLACK);                    }                }                TextView textView = list.get(position);                int i = textView.getWidth() + 10;                hsv.scrollTo(i*position,0);            }            @Override            public void onPageSelected(int position) {            }            @Override            public void onPageScrollStateChanged(int state) {            }        });        clv.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,titles));        clv.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                vp.setCurrentItem(i);             Fragment1.getString("http://gank.io/api/data/"+ URLEncoder.encode(titles[i])+"/");                draw.closeDrawers();            }        });    }    class Mvpdapter extends FragmentPagerAdapter{        public Mvpdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return Fragment1.getString("http://gank.io/api/data/"+ URLEncoder.encode(titles[position])+"/");        }        @Override        public int getCount() {            return list.size();        }    }    private void intiView() {        vp = (ViewPager) findViewById(R.id.hvp);        hsv = (HorizontalScrollView) findViewById(R.id.hsv);        hll = (LinearLayout) findViewById(R.id.hll);        cll = (LinearLayout) findViewById(R.id.cll);        clv = (ListView) findViewById(R.id.clv);        draw = (DrawerLayout) findViewById(R.id.draw);        //创建集合存放textview        list = new ArrayList<>();        //创建textview        for(int i=0;i<titles.length;i++){            //创建Textview            TextView textView = new TextView(MainActivity.this);            textView.setText(titles[i]);            textView.setTextSize(20);            textView.setId(i+1000);            //点击事件            textView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    int id = view.getId();                    vp.setCurrentItem(id-1000);                }            });            //刚进入程序第一个为红色            if(i==0){                textView.setTextColor(Color.RED);            }else{                textView.setTextColor(Color.BLACK);            }            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);            params.setMargins(20,10,20,10);            hll.addView(textView,params);            //添加到集合            list.add(textView);        }    }}

6第二个无限轮播

package com.example.xin09921;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;public class Main2Activity extends AppCompatActivity {    private ViewPager vp;    private LinearLayout ll;    private List<ImageView> ivlist = new ArrayList<>();    private String[] urlStr = new String[]{"http://pic8.nipic.com/20100701/5290458_114840036316_2.jpg",            "http://pic2.nipic.com/20090424/1468853_230119053_2.jpg",            "http://img3.3lian.com/2013/s1/20/d/57.jpg",            "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg",            "http://a0.att.hudong.com/15/08/300218769736132194086202411_950.jpg"};Handler handler=new Handler(){    @Override    public void handleMessage(Message msg) {        super.handleMessage(msg);        int i=vp.getCurrentItem();        i++;        vp.setCurrentItem(i);        sendEmptyMessageDelayed(0,2000);    }};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        vp = (ViewPager) findViewById(R.id.vp);        ll = (LinearLayout) findViewById(R.id.ll);        MVPAdapter mvpAdapter = new MVPAdapter();        vp.setAdapter(mvpAdapter);        initDot();        vp.setCurrentItem(1000*urlStr.length);        handler.sendEmptyMessageDelayed(0,2000);        vp.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<ivlist.size();i++){                    if(position%urlStr.length==i){                        ivlist.get(position%urlStr.length).setImageResource(R.drawable.dot_focuable);                    }else {                        ivlist.get(i).setImageResource(R.drawable.dot_normal);                    }                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void initDot() {        if(ivlist!=null){            ivlist.clear();        }        for(int i=0;i<urlStr.length;i++){            ImageView imageView = new ImageView(Main2Activity.this);            if(i==0){                imageView.setImageResource(R.drawable.dot_focuable);            }else{                imageView.setImageResource(R.drawable.dot_normal);            }            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);            layoutParams.setMargins(10,0,10,0);            ll.addView(imageView,layoutParams);            ivlist.add(imageView);        }    }    class MVPAdapter extends PagerAdapter {        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            ImageView imageView = new ImageView(Main2Activity.this);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            ImageLoader.getInstance().displayImage(urlStr[position%urlStr.length],imageView);            container.addView(imageView);            imageView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    Intent intent = new Intent(Main2Activity.this, MainActivity.class);                    startActivity(intent);                }            });            return imageView;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View)object);        }    }}

7.fragment纵向滑动

package com.example.xin09921;import android.os.AsyncTask;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import com.bawei.wzq.wzlibrary.utils.NetWorkUtil;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import com.nostra13.universalimageloader.core.ImageLoader;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.List;/** * author:Created by WangZhiQiang on 2017/9/21. */public class Fragment1 extends Fragment {    int i = 0;    private View view;    private String url;    private PullToRefreshListView pullLv;    private List<Strbean> list;    private MpullAdapter mpullAdapter;    public static Fragment1 getString(String s) {        Fragment1 fragment1 = new Fragment1();        Bundle bundle = new Bundle();        bundle.putString("Url", s);        fragment1.setArguments(bundle);        return fragment1;    }    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.fragment, container, false);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        Bundle arguments = getArguments();        url = arguments.getString("Url");        pullLv = (PullToRefreshListView) view.findViewById(R.id.pullLv);        pullLv.setMode(PullToRefreshBase.Mode.BOTH);        list = new ArrayList<>();      mpullAdapter = new MpullAdapter();        pullLv.setAdapter(mpullAdapter);        new MAsyncTask().execute(url + "10/1");        pullLv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {            @Override            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {                list.clear();                i = 1;                new MAsyncTask().execute(url + "10/1");            }            @Override            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {                i++;                new MAsyncTask().execute(url + "10/" + i);            }        });    }    class MAsyncTask extends AsyncTask<String, Void, String> {        @Override        protected String doInBackground(String... strings) {            String netString = new NetWorkUtil().getNetString(strings[0]);            Log.e("33TAG---------------", netString);            return netString;           /* try {                URL url = new URL(strings[0]);                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                int responseCode = urlConnection.getResponseCode();                if (responseCode ==200){                    InputStream inputStream = urlConnection.getInputStream();                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));                    StringBuffer buffer = new StringBuffer();                    String string = "";                    while ((string=reader.readLine())!=null){                        buffer.append(reader);                    }                    Log.e("bbbb--------",buffer.toString() );                    return buffer.toString();                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }            return null;*/        }        //http://img3.3lian.com/2013/s1/20/d/57.jpg        @Override        protected void onPostExecute(String s) {            super.onPostExecute(s);            Log.e("sss-------------", s);            try {                JSONObject jsonObject = new JSONObject(s);                JSONArray results = jsonObject.optJSONArray("results");                for (int i = 0; i < results.length(); i++) {                    JSONArray images = results.optJSONObject(i).optJSONArray("images");                    if (images != null) {                        list.add(new Strbean((String) images.get(0), results.optJSONObject(i).optString("desc")));                    } else {                        String u = "http://img3.3lian.com/2013/s1/20/d/57.jpg";                        list.add(new Strbean(u, results.optJSONObject(i).optString("desc")));                    }                }            mpullAdapter.notifyDataSetChanged();                pullLv.onRefreshComplete();            } catch (JSONException e) {                e.printStackTrace();            }        }    }    class MpullAdapter extends BaseAdapter {        @Override        public int getCount() {            return list.size();        }        @Override        public Object getItem(int i) {            return list.get(i);        }        @Override        public long getItemId(int i) {            return i;        }        class ViewHowder {            TextView tv;            ImageView iv;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            ViewHowder vh = null;            if (view == null) {                view = View.inflate(getActivity(), R.layout.itempull, null);                vh = new ViewHowder();                vh.iv = (ImageView) view.findViewById(R.id.iv);                vh.tv = (TextView) view.findViewById(R.id.tv);                view.setTag(vh);            } else {                vh = (ViewHowder) view.getTag();            }            vh.tv.setText(list.get(i).getTv());            ImageLoader.getInstance().displayImage(list.get(i).getImg(), vh.iv);            return view;        }    }}

8.存放

package com.example.xin09921;/** * author:Created by WangZhiQiang on 2017/9/21. */public class Strbean {    private String img;    private String tv;    public Strbean(String img, String tv) {        this.img = img;        this.tv = tv;    }    public String getImg() {        return img;    }    public void setImg(String img) {        this.img = img;    }    public String getTv() {        return tv;    }    public void setTv(String tv) {        this.tv = tv;    }    @Override    public String toString() {        return "Strbean{" +                "img='" + img + '\'' +                ", tv='" + tv + '\'' +                '}';    }}

9.图片的获取

package com.example.xin09921;import android.app.Application;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * author:Created by WangZhiQiang on 2017/9/21. */public class Mapp extends Application{    @Override    public void onCreate() {        super.onCreate();        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();        ImageLoader.getInstance().init(build);    }}

清单文件

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.xin09921"><uses-permission android:name="android.permission.INTERNET"></uses-permission>    <application        android:name=".Mapp"        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            </activity>        <activity android:name=".Main2Activity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>     </application>    </manifest>