无限轮播自动获取图片
来源:互联网 发布:unity3d输出日志文件 编辑:程序博客网 时间:2024/06/14 05:22
package com.example.yuekao_;
import android.content.Intent;
import android.os.AsyncTask;
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.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import static com.example.yuekao_.ImageLoaderUtil.getDefaultOption;
public class WelcomActivity extends AppCompatActivity {
private LinearLayout lien;
private ViewPager viewPager;
private Button button;
private List<DataDataBean.DataBean> list;
private List<ImageView> images;
private String s;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
if(msg.what==0){
int currentItem = viewPager.getCurrentItem();
viewPager.setCurrentItem(currentItem+1);
handler.sendEmptyMessageDelayed(0,2000);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcom);
lien = (LinearLayout) findViewById(R.id.lien);
viewPager = (ViewPager) findViewById(R.id.viewPager);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(WelcomActivity.this,MainActivity.class);
startActivity(intent);
}
});
initData();
/* list.add("http://img3.imgtn.bdimg.com/it/u=848724803,1064721490&fm=27&gp=0.jpg");
list.add("http://img2.imgtn.bdimg.com/it/u=3737176742,1290374026&fm=27&gp=0.jpg");
list.add("http://img0.imgtn.bdimg.com/it/u=2776548487,3970089573&fm=27&gp=0.jpg");
list.add("http://img3.imgtn.bdimg.com/it/u=3833245018,3691147395&fm=27&gp=0.jpg");
list.add("http://img1.imgtn.bdimg.com/it/u=92344653,1157551912&fm=27&gp=0.jpg");
*/
}
private void initData() {
new AsyncTask<String,Void,String>(){
@Override
protected String doInBackground(String... params) {
try {
URL url = new URL("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
int responseCode = connection.getResponseCode();
if(responseCode==200){
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len ;
byte[] buffer = new byte[1024];
while ((len = inputStream.read(buffer))!=-1){
baos.write(buffer,0,len);
}
s = baos.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return s;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);
list = dataDataBean.getData();
viewPager.setAdapter(new MYAdapter());
initDoc();
viewPager.setCurrentItem(list.size()*10000);
handler.sendEmptyMessageDelayed(0,2000);
viewPager.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<images.size();i++){
if(i==position%images.size()){
images.get(i).setImageResource(R.drawable.select);
}else {
images.get(i).setImageResource(R.drawable.select_no);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}.execute();
}
private void initDoc() {
images = new ArrayList<>();
lien.removeAllViews();
for(int i = 0;i<list.size();i++){
ImageView imageView = new ImageView(WelcomActivity.this);
if(i==0){
imageView.setImageResource(R.drawable.select);
}else {
imageView.setImageResource(R.drawable.select_no);
}
images.add(imageView);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(5, 0, 5, 0);
lien.addView(imageView, params);
}
}
class MYAdapter 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(WelcomActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
boolean isTZ = true;
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
handler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_MOVE:
handler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_CANCEL:
isTZ =false;
handler.sendEmptyMessageDelayed(0,2000);
break;
case MotionEvent.ACTION_UP://抬起
handler.sendEmptyMessageDelayed(0, 2000);
break;
}
return true;
}
});
ImageLoader.getInstance().displayImage(list.get(position%list.size()).getImg(),imageView,getDefaultOption());
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}
布局
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="进入系统"/>
<LinearLayout
android:id="@+id/lien"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/viewPager"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:orientation="horizontal">
</LinearLayout>
阅读全文
1 0
- 无限轮播自动获取图片
- 图片自动无限轮播
- Viewpager获取网络图片进行自动无限轮播
- ViewPager加载图片自动无限轮播
- swiper+图片自动+无限轮播
- 网络获取图片viewpager无限轮播
- 自动无限轮播
- 自动无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- 图片无限轮播
- ViewPager图片自动+手动左右无限轮播
- Tensorflow安装及更新
- 我的第一篇博客
- RecyclerView嵌套问题
- 搭建vue.js开发环境过程
- win7与虚拟机中linux共享文件方法
- 无限轮播自动获取图片
- Hashset和treeset
- AutoFac 的使用
- charles之配置
- HDU 5168 Legal path 最短路 OR DP
- Git 常用整理
- python-web.py 开发入门
- 集群管理——(2)关于登录重新回到图形登录界面的错误和硬盘引导错误的解决方法!
- 【LeetCode】C# 58、Length of Last Word