常用控件,图片和进度条

核心
1、toast弹框
2、imageview
3、进度条
4、子线程访问主线程(线程中的通信handler)
5、进度条案例

Toast
案例一:消息提示框
1. Toast(吐丝框)
1.1 Toast是Android中的一种简易的消息提示框
1.2 使用这个类的最简单的方法是调用静态方法构造您所需要的一切,并返回一个新的Toast对象。
Toast toast=Toast.makeText(getApplicationContext(), “默认的Toast”, Toast.LENGTH_SHORT);
toast.show();
第一个参数:当前的上下文环境。可用getApplicationContext()或this
第二个参数:要显示的字符串。也可是R.string中字符串ID
第三个参数:显示的时间长短。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短),也可以使用毫秒如2000ms

2. ImageView
2.0 注意事项:res下面的资源名不能使用大写字母,特别是图片资源中的图片的文件名,会造成R.java文件丢失,改正确后即可
例如:smallImage.png错误,small_image.png正确

2.1 scaleType(缩放类型)
scaleType的属性值有:matrix fitXY fitStart fitCenter fitEnd center centerCrop centerInside

2.2 scaleType属性分二种情况分析
1.1.1 图片比ImageView小(android08_widget03_d01_v1)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="70dp">

        //显示百分比
        <TextView
            android:id="@+id/tv_main_tv1"
            android:background="@color/red"
            android:textSize="20dp"
            android:layout_width="70dp"
            android:layout_height="match_parent" />

    </FrameLayout>
//进度条
<ProgressBar
    android:id="@+id/pb_main_pb1"
    style="?android:attr/progressBarStyleHorizontal"
    android:max="100"
    android:progress="0"
    android:layout_width="match_parent"
    android:layout_height="80dp" />

<Button
    android:id="@+id/btn_main_btn1"
    android:layout_width="match_parent"
   android:onClick="setProgressBar"
    android:layout_height="wrap_content" />

MainActivity.java 代码

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private ProgressBar pb_main_pb1;
    private int progress;
    private TextView tv_main_tv1;
    private  MyHandler myHandler=new MyHandler();
    private int code=1;

    private class MyHandler extends Handler{
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(code==msg.what){
                progress++;
                pb_main_pb1.setProgress(progress);
                tv_main_tv1.setText(progress+"%");
            }


        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化控件
        pb_main_pb1=this.findViewById(R.id.pb_main_pb1);
        tv_main_tv1=this.findViewById(R.id.tv_main_tv1);

    }

    public void studyToast(View view) {
        //context 上下文参数  text 弹框字幕  Toast.后面弹框出现停留的时间
     Toast.makeText(this, "hellow Toast", Toast.LENGTH_LONG).show();
    }

    //主线程
    public void setProgressBar(View view) {
            if(0==progress){
                new MyThread().start();
            }
    }

    //子线程

    public class MyThread extends Thread{
        @Override
        public void run() {
            super.run();
            //耗时操作
           while (true){
               try {
                   Thread.sleep(100);
               } catch (InterruptedException e) {
                   e.printStackTrace();
               }
               if(progress==100){
                   progress=0;
                   break;
               }

               Message msg=new Message();
               msg.what=1;
               myHandler.sendMessage(msg);

           }


        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值