android 时间控件+选取本地照片

来源:互联网 发布:烟筒防风帽制作数据 编辑:程序博客网 时间:2024/05/29 12:32

选取照片

https://github.com/YancyYe/GalleryPick  选取图片_不能使用Unimageloader用glide

https://github.com/jeasonlzy0216/ImagePicker  选取照片_好用_自定义选取照片基于此项目

自定义调用代码:

 // 拍照    private Button take_photo_bt;    // 本地获取    private Button local_photo_bt;    // 取消    private Button cancel_bt;    private ImagePicker imagePicker;    public static final int IMAGE_PICKER = 100;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_take_photo);        initView();        initImagePicker();    }    private void initImagePicker() {        imagePicker = ImagePicker.getInstance();        imagePicker.setImageLoader(new UniversalImageLoader());   //设置图片加载器        imagePicker.setShowCamera(true);  //显示拍照按钮        imagePicker.setCrop(true);        //允许裁剪(单选才有效)        imagePicker.setSaveRectangle(true); //是否按矩形区域保存        imagePicker.setSelectLimit(9);    //选中数量限制        imagePicker.setStyle(CropImageView.Style.RECTANGLE);  //裁剪框的形状        imagePicker.setFocusWidth(800);   //裁剪框的宽度。单位像素(圆形自动取宽高最小值)        imagePicker.setFocusHeight(800);  //裁剪框的高度。单位像素(圆形自动取宽高最小值)        imagePicker.setOutPutX(1000);//保存文件的宽度。单位像素        imagePicker.setOutPutY(1000);//保存文件的高度。单位像素        imagePicker.setMultiMode(true);    }    private void initView() {        local_photo_bt = (Button) findViewById(R.id.local_photo_bt);        take_photo_bt = (Button) findViewById(R.id.take_photo_bt);        cancel_bt = (Button) findViewById(R.id.cancel_bt);        // 本地选择        local_photo_bt.setOnClickListener(this);        // 拍照        take_photo_bt.setOnClickListener(this);        cancel_bt.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.local_photo_bt:                //本地选取照片                Intent intent = new Intent(this, ImageGridActivity.class);                startActivityForResult(intent, IMAGE_PICKER);                break;            case R.id.take_photo_bt:                //拍照                imagePicker.takePicture(this, ImagePicker.REQUEST_CODE_TAKE);                break;            case R.id.cancel_bt:                //取消                finish();                break;        }    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == ImagePicker.RESULT_CODE_ITEMS && requestCode == TakePhoto2Activity.IMAGE_PICKER) {            setResult(ImagePicker.RESULT_CODE_ITEMS, data);            finish();        }        else if (data != null && resultCode == 1004 && requestCode == 1002) {            //从拍照界面返回            //点击 X , 没有选择照片            if (data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) == null) {                //什么都不做            } else {                //说明是从裁剪页面过来的数据,直接返回就可以                setResult(ImagePicker.RESULT_CODE_ITEMS, data);                finish();            }        }        //如果是裁剪,因为裁剪指定了存储的Uri,所以返回的data一定为null        else if (resultCode == RESULT_OK && requestCode == ImagePicker.REQUEST_CODE_TAKE && data == null) {            //发送广播通知图片增加了            ImagePicker.galleryAddPic(this, imagePicker.getTakeImageFile());            ImageItem imageItem = new ImageItem();            imageItem.path = imagePicker.getTakeImageFile().getAbsolutePath();            imagePicker.clearSelectedImages();            imagePicker.addSelectedImageItem(0, imageItem, true);            if (imagePicker.isCrop()) {                Intent intent = new Intent(this, ImageCropActivity.class);                startActivityForResult(intent, ImagePicker.REQUEST_CODE_CROP);  //单选需要裁剪,进入裁剪界面            } else {                Intent intent = new Intent();                intent.putExtra(ImagePicker.EXTRA_RESULT_ITEMS, imagePicker.getSelectedImages());                setResult(ImagePicker.RESULT_CODE_ITEMS, intent);   //单选不需要裁剪,返回数据                finish();            }        }    }


时间控件:

https://github.com/gzu-liyujiang/AndroidPicker 滑动较卡顿   ==>时间AndroidPicker地址_时间_单选等多种wheelView集合

https://github.com/saiwu-bigkoo/Android-PickerView 推荐使用,滑动流畅  ==>时间PickerView三级联动_地址_时间控件

调用代码:

tvTime = (TextView) findViewById(R.id.tvTime);        //时间选择器        pvTime = new TimePickerView(this, TimePickerView.Type.YEAR_MONTH_DAY);        //控制时间范围//        Calendar calendar = Calendar.getInstance();//        pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));        pvTime.setTime(new Date());        pvTime.setCyclic(true);        pvTime.setCancelable(true);        //时间选择后回调        pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {            @Override            public void onTimeSelect(Date date) {                tvTime.setText(getTime(date));            }        });        //弹出时间选择器        tvTime.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                pvTime.show();            }        });


0 0