自定义view
来源:互联网 发布:深圳入学积分怎么算法 编辑:程序博客网 时间:2024/06/11 18:27
public class Autopager extends LinearLayout { private ViewPager vp; private LinearLayout ll; private View inflate; private List<ImageView> image = new ArrayList<>(); private int item = 0; private ImageView imageView; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); vp.setCurrentItem(item); } }; public Autopager(Context context) { this(context, null); } public Autopager(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public Autopager(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); inflate = View.inflate(context, R.layout.carousebj, this); init(); } private void init() { vp = inflate.findViewById(R.id.vp); ll = findViewById(R.id.ll); jiadian(); handler.sendEmptyMessage(5000); 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 < image.size(); i++) { ImageView imageView = image.get(position % image.size()); if(position%image.size()==i){ imageView.setImageResource(R.drawable.bb); }else{ image.get(i).setImageResource(R.drawable.aa); } } } @Override public void onPageScrollStateChanged(int state) { } }); } public void tim() { Log.e("chen", "tim: -------------"+"我自动轮播" ); Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { ++item; handler.sendEmptyMessage(0); } }, 0, 5000);// ++item;// handler.sendEmptyMessageDelayed(1, 5000); } public void jiadian() { Log.e("chen", "jiadian: -------------"+"我添加原点" ); //得到LinearLayout布局 if(image!=null){ image.clear();//清空图片集合 } ll.removeAllViews();//清空LinearLayout布局 for (int i=0;i<4;i++)//添加 { //创建一个图片布局 imageView = new ImageView(getContext()); if(i==0) { imageView.setImageResource(R.drawable.bb); Log.e("chen", "jiadian: -------------"+"我是第一张" ); }else{ imageView.setImageResource(R.drawable.aa); Log.e("chen", "jiadian: -------------"+"我是第234张" ); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);//圆点大小 image.add(imageView);//圆点添加到图片集合中 ll.addView(imageView,layoutParams);//圆点添加到LinearLayout中 Log.e("chen", "jiadian: -------------"+"我已经添加了" ); } } public void setadap(cpspq pp) { vp.setAdapter(pp); }}
//适配器
public class cpspq extends PagerAdapter{ private Context context; private ArrayList<tu> arr; private Myurl dizhi; public cpspq(Context context, ArrayList<tu> arr,Myurl dizhi) { this.context = context; this.arr = arr; this.dizhi=dizhi; } @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, final int position) { ImageView imageView = new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY);// imageView.setImageResource(R.mipmap.ic_launcher);// Log.e("qweqwe","wqewqe"+arr.get(position).toString()); ImageLoader.getInstance().displayImage(arr.get(position%arr.size()).getTu(),imageView); container.addView(imageView); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dizhi.Jiekou(position%arr.size()); Log.e("chen", "onClick: ========"+position%arr.size() ); } }); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
//Main请求网络
public class MainActivity extends AppCompatActivity implements Myurl { ArrayList<tu> tuarr = new ArrayList<>(); private Autopager chenxu; private ViewPager vv; private List<ImageView> image = new ArrayList<>(); private LinearLayout ll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new MAsyncTask().execute("http://120.27.23.105/ad/getAd"); vv = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.ll); chenxu = (Autopager) findViewById(R.id.chenxu);// chenxu.setadap(new cpspq(MainActivity.this,tuarr)); chenxu.tim();// chenxu.jiadian();// vv.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {// @Override// public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {// for (int i = 0; i < tuarr.size(); i++) {// ImageView imageView = ivList1.get(position % tuarr.size());// if(position%ivList1.size()==i){// imageView.setImageResource(R.drawable.bb);// }else{// ivList1.get(i).setImageResource(R.drawable.aa);// }// }// }//// @Override// public void onPageSelected(int position) {//// }//// @Override// public void onPageScrollStateChanged(int state) {//// }// }); } @Override public void Jiekou(int oo) { String lj = tuarr.get(oo).getLj(); Log.e("chen", "Jiekou: " + "我要跳转了" + lj); if (oo == 3) { Toast.makeText(MainActivity.this, "我要跳转了", Toast.LENGTH_SHORT).show(); } else { Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.putExtra("dz", lj); startActivity(intent); } } class MAsyncTask extends AsyncTask<String, Void, String> { //这个是请求网络之前的调用的方法,也是最先调用的方法,可以初始化一些ui等;这个方法是在主线程里运行的//可以不写 @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... strings) { StringBuilder stringBuilder = new StringBuilder(); String s = ""; try {//拼接字符串,拼接完成之后进行返回 URL url = new URL(strings[0]); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); while ((s = bufferedReader.readLine()) != null) { stringBuilder.append(s); } String pjsj = stringBuilder.toString(); Log.e("chen", "doInBackground: 拼接的内容" + pjsj); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return stringBuilder.toString(); } @Override protected void onPostExecute(String s) {//连接适配器 super.onPostExecute(s); Gson gson = new Gson(); jiexibean jiexibean = gson.fromJson(s, jiexibean.class); List<com.example.zhoukaomoni.jiexibean.DataBean> data = jiexibean.getData(); for (int i = 0; i < data.size(); i++) { String icon = data.get(i).getIcon(); String url = data.get(i).getUrl(); tuarr.add(new tu(icon, url)); } chenxu.setadap(new cpspq(MainActivity.this, tuarr, MainActivity.this)); Log.e("chen", "onPostExecute: " + tuarr); } }}
阅读全文
0 0
- 自定义view
- 自定义View
- 自定义view
- 自定义View
- 自定义View
- 自定义view
- 自定义View
- 自定义view
- 自定义view
- 自定义View
- 自定义View
- 自定义view
- 自定义view
- 自定义view
- 自定义view
- 自定义view
- 自定义View
- 自定义View
- 12月份英语计划
- 2.zookeeper安装(单机/集群环境/linux/windows)
- 使用EditPlus远程连接Linux服务器编辑文件
- 只要现在,不要明天,不要逃避
- 安全性需求追踪模型
- 自定义view
- 【死磕Netty】-----Netty的核心组件
- linux下的gdb调试(1)
- 刨根究底字符编码之零——前言
- Android应用开发—setResult()的调用时机
- .dll文件讲解,及其调用
- RPM包管理基础和源码编译基础
- 自定义view轮播
- NodeJS之域名解析器实现