手动图片横向轮播

新学习知识,用到率30%

子布局设置:

主布局设置:

activity设置:
package com.example.administrator.test_1216;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //声明主布局
    ImageView img;
    LinearLayout line;
    //声明子布局
    ImageView img1;
    TextView num;
    //图片数组
    int[] imgid=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item_view);
        // 绑定祝布局
        img= (ImageView) findViewById(R.id.img);
        line= (LinearLayout) findViewById(R.id.line);
        //初始化数组
        imgid = new int[]{R.mipmap.baiyang, R.mipmap.chunv, R.mipmap.jinniu, R.mipmap.mojie, R.mipmap.shizi, R.mipmap.baiyang, R.mipmap.chunv, R.mipmap.jinniu, R.mipmap.mojie, R.mipmap.shizi};
        //使用for循环新建视图
        for (int i = 0; i <imgid.length ; i++) {
            //加载子布局
            View v= LayoutInflater.from(MainActivity.this).inflate(R.layout.item1,null);
            //绑定子布局
            img1= (ImageView) v.findViewById(R.id.img1);
            num= (TextView) v.findViewById(R.id.num);
            //为子布局控件添加id,用来点击使用
            img1.setId(i);
            //设置背景资源
            img1.setImageResource(imgid[i]);
            //给textView设置内容
            num.setText(i+"");
            //给textView设置tag,点击时使用
            num.setTag(i);
            //设置监听
            img1.setOnClickListener(this);
            //将子布局添加到主布局中

            line.addView(v);
        }
    }

    @Override
    public void onClick(View v) {
        //点击的控件必须是ImageView类型  并且  点击的ImageView控件要是子布局里的
            if((v instanceof ImageView)&&(v!=img)){
                //给主布局里的ImageView控件设置背景资源,保证和子布局里点击选中的图片一致
                img.setImageResource(imgid[v.getId()]);
                //遍历LinearLayout里面子布局,对文字进行设置
                for (int i = 0; i <line.getChildCount() ; i++) {
                    num= (TextView) line.findViewWithTag(i);
                    //设置选中图片对应的下面文字序号的编号
                    if(line.getChildAt(i).findViewById(i).getId()==v.getId()){
                        num.setTextColor(Color.BLUE);
                    }else {
                        //未选中图片对应的颜色
                        num.setTextColor(Color.BLACK);
                    }
                }
            }
    }
}

效果图:

原文地址:https://www.cnblogs.com/ll-ouyang/p/6197750.html