美文网首页
进度条,拖动条,星级评分条,图片滑动功能

进度条,拖动条,星级评分条,图片滑动功能

作者: 被罚站的树 | 来源:发表于2019-05-18 11:04 被阅读0次

进度条ProgressBar


image.png image.png
 <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:id="@+id/pB"
        android:max="100"
        android:progress="66"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="100dp"
        />
private ProgressBar progressBar;
    private int mProgress=0;
    private Handler mHandler; //用于更新主线程UI
 progressBar=findViewById(R.id.pB);
        mHandler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                if(msg.what==0x11){
                    progressBar.setProgress(mProgress);
                }else{
                    Toast.makeText(MainActivity.this,"进度完成",Toast.LENGTH_SHORT).show();
                    progressBar.setVisibility(View.GONE);
                }
            }
        };
        new Thread(new Runnable() {
            @Override
            public void run() {
                while (true){
                    mProgress=doWork();
                    Message m=new Message();
                    if(mProgress<100){
                        m.what=0x11;
                        mHandler.sendMessage(m);x`
                    }else{
                        m.what=0x12;
                        mHandler.sendMessage(m);
                    }
                }
            }
            private int doWork(){     //doWork模拟进程,返回一个mProgress int整型数
                mProgress+=Math.random()*10;
                try{
                    Thread.sleep(200);
                }catch(InterruptedException e){
                    e.printStackTrace();
                }
                return mProgress;
            }
        }).start();

拖动条seekBar


image.png
 <ImageView
        android:id="@+id/iV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/timg"/>

    <SeekBar
        android:id="@+id/sB"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="255"
        android:progress="255"
        android:layout_above="@+id/pB"
        android:layout_marginBottom="70dp"
        android:thumb="@mipmap/ic_launcher"/>
    private SeekBar seekBar;
    private ImageView imageView;
imageView=findViewById(R.id.iV);
        seekBar=findViewById(R.id.sB);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                //进度改变调用的方法
                imageView.setAlpha(progress);//改变图片透明度
                Toast.makeText(MainActivity.this, "进度改变:"+progress, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                //触摸的时候执行的方法
                Toast.makeText(MainActivity.this, "开始触摸", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                //停止触摸时执行的方法
                Toast.makeText(MainActivity.this, "停止触摸", Toast.LENGTH_SHORT).show();
            }
        });

星级评分条


image.png
<RatingBar
        android:numStars="5"
        android:id="@+id/rB"
        android:layout_above="@id/pB"
        android:layout_marginBottom="10dp"
        android:rating="1"
        android:stepSize="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:isIndicator="false"
        />
        final RatingBar ratingBar=findViewById(R.id.rB);
        String ratting=String.valueOf(ratingBar.getRating());//获取星范围
        String size=String.valueOf(ratingBar.getStepSize());//能改变的最小值
        String progress=String.valueOf(ratingBar.getProgress());//当前星数
        Toast.makeText(this,ratting+" "+size+" "+progress,Toast.LENGTH_SHORT).show();

相片滑动功能

<ImageSwitcher
        android:id="@+id/iS"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        ></ImageSwitcher>
private int[] arrayPic=new int[]{R.mipmap.b,R.mipmap.c,
            R.mipmap.d,R.mipmap.e,R.mipmap.f
    };

    private ImageSwitcher imageSwitcher;
    private int index;
    private float touchDownX;
    private float touchUpX;
setContentView(R.layout.activity_main);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                     WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏显示

        imageSwitcher=findViewById(R.id.iS);
        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,android.R.anim.fade_out));
        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,android.R.anim.fade_in));

        imageSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {

                ImageView imageView=new ImageView(MainActivity.this);
                imageView.setImageResource(arrayPic[index]);

                return imageView;
            }
        });

        imageSwitcher.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction()==MotionEvent.ACTION_DOWN){
                        touchDownX=event.getX();
                        return true;
                }
                if(event.getAction()==MotionEvent.ACTION_UP){
                        touchUpX=event.getX();
                    if(touchUpX-touchDownX>50){
                        index=index==0?arrayPic.length-1:index-1;

                        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_left));
                        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_out_right));
                        imageSwitcher.setImageResource(arrayPic[index]);

                    }else if (touchDownX-touchUpX>50){
                        index=index==arrayPic.length-1?0:index+1;

                        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_in_right));
                        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.slide_out_left));
                        imageSwitcher.setImageResource(arrayPic[index]);

                    }

                        return true;
                }

                return false;
            }
        });

相关文章

网友评论

      本文标题:进度条,拖动条,星级评分条,图片滑动功能

      本文链接:https://www.haomeiwen.com/subject/vxqpaqtx.html