解决华为手机获取不到图库图片的路径问题

来源:互联网 发布:kafka数据写入 hdfs 编辑:程序博客网 时间:2024/05/01 11:59
Uri originalUri = data.getData();Cursor cursor = getContentResolver().query(originalUri, null, null, null, null);if (cursor != null) {    cursor.moveToFirst();    String document_id = cursor.getString(0);    document_id = document_id.substring(document_id.lastIndexOf(":") + 1);    cursor.close();    cursor = getContentResolver().query(            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,            null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);    if (cursor != null) {        cursor.moveToFirst();        picturePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));        cursor.close();    }    Log.e("zm","picturePath1111:"+picturePath);}if(bitmap!=null&&!bitmap.isRecycled()){    bitmap.recycle();} bitmap = getBitmap(picturePath);iv_img.setImageBitmap(bitmap);
package cc.angis.jy365.activity;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.ContentResolver;import android.content.Intent;import android.database.Cursor;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.net.Uri;import android.os.AsyncTask;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import com.custom.view.SpinerPopWindow;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.RequestParams;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest;import com.nui.multiphotopicker.model.ImageItem;import com.nui.multiphotopicker.util.CustomConstants;import com.zqy.datetimepicker.datedialog.DateTimePickerDialog;import com.zqy.datetimepicker.datedialog.DateTimePickerDialog.OnDateTimeSetListener;import org.json.JSONException;import org.json.JSONObject;import java.io.ByteArrayOutputStream;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.UUID;import cc.angis.jy365.appinterface.CreateStudentForClass;import cc.angis.jy365.appinterface.TCInsertOrTCEdit;import cc.angis.jy365.db.LightDBHelper;import cc.angis.jy365.util.GobalConstants;import cc.angis.ssyy.R;import static com.networkbench.com.google.gson.internal.a.m.F;public class CreateActivity extends Activity {    private ImageView back;    private EditText conferName;    private TextView conferTypeAll;    private TextView conferTypePart;    private ImageView image1, image2;    private LinearLayout addPer;    private LinearLayout conferType;    private TextView startTime;    private LinearLayout startTimeLinear;    private EditText durationTime;    private EditText conferAddress;    private EditText conferUnit;    private EditText conferIntroduction;    private EditText conferPlan;    private EditText conferContent;    private Button publish;    private TextView conferTypeText;    private String conferTypeStr = "";    private ImageView videoConfer;    private ProgressDialog progress = null;    private boolean islive = false;//是否视频会议    private boolean isAll = true;//全体党员    private long startTimeSec = 0;    //////////////////////    private SpinerPopWindow<String> mSpinerPopWindow;    private List<String> list;    private String user_nm;    private Button bt_select_pic, bt_take_photo;    private ImageView iv_img;    String conferNameText;    String startTimeText;    String conferAddText;    String conferUnitText;    String conferIntroductionText;    String conferPlanText;    String conferContentText;    String picturePath = "";    private int readTimeOut = 10 * 1000; // 读取超时    private int connectTimeout = 10 * 1000; // 超时时间    /***     * 请求使用多长时间     */    private static int requestTime = 0;    private static final String CHARSET = "utf-8"; // 设置编码    String tcid = "";    Bitmap bitmap;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_create);        /////////////////////////////////////        startTimeLinear = (LinearLayout) findViewById(R.id.startTimeLinear);        videoConfer = (ImageView) findViewById(R.id.videoConfer);        back = (ImageView) findViewById(R.id.back4);        conferType = (LinearLayout) findViewById(R.id.conferType);        conferName = (EditText) findViewById(R.id.conferName);        conferAddress = (EditText) findViewById(R.id.conferAddress);        conferUnit = (EditText) findViewById(R.id.conferUnit);        conferIntroduction = (EditText) findViewById(R.id.conferIntroduction);        conferPlan = (EditText) findViewById(R.id.conferPlan);        conferContent = (EditText) findViewById(R.id.conferContent);        conferTypeAll = (TextView) findViewById(R.id.conferTypeAll);        conferTypePart = (TextView) findViewById(R.id.conferTypePart);        startTime = (TextView) findViewById(R.id.startTime);        durationTime = (EditText) findViewById(R.id.durationTime);        addPer = (LinearLayout) findViewById(R.id.addPer);        publish = (Button) findViewById(R.id.publish);        image1 = (ImageView) findViewById(R.id.image1);        image2 = (ImageView) findViewById(R.id.image2);        bt_select_pic = (Button) findViewById(R.id.bt_select_pic);        bt_take_photo = (Button) findViewById(R.id.bt_take_photo);        iv_img = (ImageView) findViewById(R.id.iv_img);        bt_select_pic.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                onLocation();            }        });        bt_take_photo.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                onTakePhoto();            }        });        //////////////////        image1.setImageResource(R.drawable.meetsele);        image2.setImageResource(R.drawable.meet_unsele);        addPer.setVisibility(View.INVISIBLE);        //////////////////        back.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                CreateActivity.this.finish();            }        });        videoConfer.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if (islive) {                    islive = false;                    videoConfer.setImageResource(R.drawable.meet_unsele);                } else {                    islive = true;                    videoConfer.setImageResource(R.drawable.meetsele);                }            }        });        //下拉框        conferTypeText = (TextView) findViewById(R.id.conferTypeText);        list = new ArrayList<String>();        list.add("支部大会");        list.add("支部委员会");        list.add("党小组会");        list.add("党课");        list.add("其他");        conferType.setOnClickListener(clickListener);        mSpinerPopWindow = new SpinerPopWindow<String>(this, list, itemClickListener);        startTimeLinear.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                showDialog(startTime);            }        });        image1.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                image1.setImageResource(R.drawable.meetsele);                image2.setImageResource(R.drawable.meet_unsele);                addPer.setVisibility(View.INVISIBLE);                isAll = true;            }        });        image2.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                image1.setImageResource(R.drawable.meet_unsele);                image2.setImageResource(R.drawable.meetsele);                addPer.setVisibility(View.VISIBLE);                isAll = false;            }        });        addPer.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Intent intent = new Intent(CreateActivity.this, cc.angis.jy365.activity.ChangeUserAcitivity.class);                startActivityForResult(intent, 1);            }        });        publish.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                if (conferTypeStr.equals("")) {                    Toast.makeText(CreateActivity.this, "请选择会议类型", Toast.LENGTH_SHORT).show();                    return;                }                if (startTimeSec == 0) {                    Toast.makeText(CreateActivity.this, "请选择会议开始时间", Toast.LENGTH_SHORT).show();                    return;                }                if (conferName.getText().toString().equals("")) {                    Toast.makeText(CreateActivity.this, "请输入会议名称", Toast.LENGTH_SHORT).show();                    return;                }                if (getStopTime().equals("")) {                    Toast.makeText(CreateActivity.this, "会议时长错误", Toast.LENGTH_SHORT).show();                    return;                }                if (TextUtils.isEmpty(user_nm)) {                    Toast.makeText(CreateActivity.this, "请添加党组成员", Toast.LENGTH_SHORT).show();                    return;                }                if(picturePath.equals("")||picturePath==null){                    Toast.makeText(CreateActivity.this, "请选择图片", Toast.LENGTH_SHORT).show();                    return;                }                progress = ProgressDialog.show(CreateActivity.this, "", "正在提交请稍后。。。。", true, true);                conferNameText = conferName.getText().toString();                startTimeText = startTime.getText().toString();                conferAddText = conferAddress.getText().toString();                conferUnitText = conferUnit.getText().toString();                conferIntroductionText = conferIntroduction.getText().toString();                conferPlanText = conferPlan.getText().toString();                conferContentText = conferContent.getText().toString();                //new SendDataTask().execute();                Log.i("zm", "picturePath:" + picturePath);                //uploadFile(picturePath);                //RequestParams params = new RequestParams();                if (getIntent().getStringExtra("toCreateActivity") != null && getIntent().getStringExtra("toCreateActivity").equals("volunteer")) {                } else {                    new SendPictureDataTask().execute();                }            }        });    }    /*-------------------------------*/// 拍照上传    public void onTakePhoto() {        Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        File vFile = new File(Environment.getExternalStorageDirectory()                + "/myimage/", String.valueOf(System.currentTimeMillis())                + ".jpg");        if (!vFile.exists())        {            File vDirPath = vFile.getParentFile();            vDirPath.mkdirs();        }        else        {            if (vFile.exists())            {                vFile.delete();            }        }        picturePath = vFile.getPath();        Uri cameraUri = Uri.fromFile(vFile);        openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri);        startActivityForResult(openCameraIntent, 0);       /* Uri imageUri = null;        String fileName = null;        Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        fileName = "image.jpg";        imageUri = Uri.fromFile(new File(Environment                .getExternalStorageDirectory(), fileName));        // 指定照片保存路径(SD卡),image.jpg为一个临时文件,每次拍照后这个图片都会被替换        openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);        startActivityForResult(openCameraIntent, 0);*/    }    // 本地上传    public void onLocation() {        Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT);        openAlbumIntent.setDataAndType(                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");        startActivityForResult(openAlbumIntent, 2);    }    /*--------------------------------*/    public String getStopTime() {        String duration = durationTime.getText().toString();        if (duration.equals("")) {            return "";        } else {            String stopTime = getStringDate((startTimeSec + (Integer.parseInt(duration) * 60000)));            return stopTime.substring(0, stopTime.length() - 3);        }    }    public void showDialog(final TextView textView) {        DateTimePickerDialog dialog = new DateTimePickerDialog(this,                System.currentTimeMillis());        /**         * 实现接口         */        dialog.setOnDateTimeSetListener(new OnDateTimeSetListener() {            public void OnDateTimeSet(AlertDialog dialog, long date) {                Toast.makeText(CreateActivity.this, "您输入的日期是:" + getStringDate(date), Toast.LENGTH_LONG).show();                String dateStr = getStringDate(date);                startTimeSec = date;                textView.setText(dateStr.substring(0, dateStr.length() - 3));            }        });        dialog.show();    }    /**     * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss     */    public static String getStringDate(Long date) {        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String dateString = formatter.format(date);        return dateString;    }    ////////////////////////////////    private class SendUserTask extends AsyncTask<Void, Void, String[]> {        String tc_id = "";        int result = 0;        public SendUserTask(String tc_id) {            this.tc_id = tc_id;        }        ;        @Override        protected String[] doInBackground(Void... params) {            result = new CreateStudentForClass(tc_id, user_nm).connect();            return null;        }        @Override        protected void onPostExecute(String[] result0) {            super.onPostExecute(result0);            progress.dismiss();            if (result == 1) {                Toast.makeText(CreateActivity.this, "添加成功!", Toast.LENGTH_LONG).show();                CreateActivity.this.finish();            } else {                Toast.makeText(CreateActivity.this, "添加失败!", Toast.LENGTH_LONG).show();            }        }    }    /////////////////////////////////    ////////////////////////////////////////    /**     * popupwindow显示的ListView的item点击事件     */    private OnItemClickListener itemClickListener = new OnItemClickListener() {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {            mSpinerPopWindow.dismiss();            // management.setText(list.get(position));            conferTypeText.setText(list.get(position).toString());         /* @[@"14",@"15",@"16",@"17",@"8"];                @[@"支部大会",@"支部委员会",@"党小组会",@"党课",@"其他分类"];*/            if (position != 4) {                conferTypeStr = 14 + position + "";            } else {                conferTypeStr = "8";            }        }    };    /**     * 显示PopupWindow     */    private OnClickListener clickListener = new OnClickListener() {        @Override        public void onClick(View v) {            switch (v.getId()) {                case R.id.conferType:                    mSpinerPopWindow.setWidth(conferType.getWidth());                    mSpinerPopWindow.showAsDropDown(conferType);                    break;            }        }    };    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        switch (requestCode) {            case 0:                if (resultCode == -1 && !TextUtils.isEmpty(picturePath))                {                    if(bitmap!=null&&!bitmap.isRecycled()){                        bitmap.recycle();                    }                     bitmap = getBitmap(picturePath);                    iv_img.setImageBitmap(bitmap);                }                break;            case 1:                if (resultCode == Activity.RESULT_OK) {                    user_nm = data.getStringExtra("user_nm");                    if (!user_nm.equals("") && !user_nm.equals(","))                        user_nm = user_nm.substring(0, user_nm.length() - 1);                }                break;            case 2:                Uri originalUri = data.getData();                Cursor cursor = getContentResolver().query(originalUri, null, null, null, null);                if (cursor != null) {                    cursor.moveToFirst();                    String document_id = cursor.getString(0);                    document_id = document_id.substring(document_id.lastIndexOf(":") + 1);                    cursor.close();                    cursor = getContentResolver().query(                            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,                            null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);                    if (cursor != null) {                        cursor.moveToFirst();                        picturePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));                        cursor.close();                    }                    Log.e("zm","picturePath1111:"+picturePath);                }                if(bitmap!=null&&!bitmap.isRecycled()){                    bitmap.recycle();                }                 bitmap = getBitmap(picturePath);                iv_img.setImageBitmap(bitmap);                break;        }    }    private void uploadFile(String uploadFile) {        File file = new File(uploadFile);        String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成        String PREFIX = "--";        String LINE_END = "\r\n";        String CONTENT_TYPE = "multipart/form-data"; // 内容类型        Map<String, String> paramsAnd = new HashMap<String, String>();        paramsAnd.put("method", "TCInsertOrTCEdit");        paramsAnd.put("tcid", "0");        paramsAnd.put("TcName", conferNameText);        paramsAnd.put("txtEndTime", getStopTime());        paramsAnd.put("UserID", LightDBHelper.getUserMail(CreateActivity.this));        paramsAnd.put("txtHostedAdd", conferAddText);        paramsAnd.put("txtHostedGroup", conferUnitText);        paramsAnd.put("txtStartTime", startTimeText);        paramsAnd.put("txtSynopsis", conferContentText);        paramsAnd.put("tc_ClassTypeID", conferTypeStr);        paramsAnd.put("tc_ClassCredits", "2");        paramsAnd.put("tc_Plan", conferPlanText);        paramsAnd.put("txtRemark", conferIntroductionText);        paramsAnd.put("islive", islive + "");        String uploadUrl = GobalConstants.URL.DEFAULTPREFIX;      /*String uploadUrl = GobalConstants.URL.DEFAULTPREFIX+"?method=TCInsertOrTCEdit"+"&tcid="+0+"&TcName="+conferNameText+"&txtEndTime="+getStopTime()                +"&UserID="+LightDBHelper.getUserMail(CreateActivity.this)+"&txtHostedAdd="+conferAddText+"&txtHostedGroup="+conferUnitText            +"&txtStartTime="+startTimeText+"&txtSynopsis="+conferContentText+"&tc_ClassTypeID="+conferTypeStr+"&tc_ClassCredits="+"2"            +"&tc_Plan="+conferPlanText+"&txtRemark="+conferIntroductionText+"&islive="+ islive;*/        long requestTime = System.currentTimeMillis();        long responseTime = 0;        try {            URL url = new URL(uploadUrl);            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            conn.setReadTimeout(readTimeOut);            conn.setConnectTimeout(connectTimeout);            conn.setDoInput(true); // 允许输入流            conn.setDoOutput(true); // 允许输出流            conn.setUseCaches(false); // 不允许使用缓存            conn.setRequestMethod("POST"); // 请求方式            conn.setRequestProperty("Charset", CHARSET); // 设置编码            conn.setRequestProperty("connection", "keep-alive");            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");            conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);//          conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");            /**             * 当文件不为空,把文件包装并且上传             */            if (!file.exists()) {                Toast.makeText(CreateActivity.this, "文件不存在", Toast.LENGTH_SHORT).show();            }            DataOutputStream dos = new DataOutputStream(conn.getOutputStream());            StringBuffer sb = null;            String params = "";            /***             * 以下是用于上传参数             */            if (paramsAnd != null && paramsAnd.size() > 0) {                Iterator<String> it = paramsAnd.keySet().iterator();                while (it.hasNext()) {                    sb = null;                    sb = new StringBuffer();                    String key = it.next();                    String value = paramsAnd.get(key);                    sb.append(PREFIX).append(BOUNDARY).append(LINE_END);                    sb.append("Content-Disposition: form-data; name=\"").append(key).append("\"").append(LINE_END).append(LINE_END);                    sb.append(value).append(LINE_END);                    params = sb.toString();                    Log.i("zm", key + "=" + params + "##");                    dos.write(params.getBytes());//                  dos.flush();                }            }            sb = null;            params = null;            sb = new StringBuffer();            /**             * 这里重点注意: name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件             * filename是文件的名字,包含后缀名的 比如:abc.png             */            sb.append(PREFIX).append(BOUNDARY).append(LINE_END);            sb.append("Content-Disposition:form-data; name=\"" + "File"                    + "\"; filename=\"" + file.getName() + "\"" + LINE_END);            sb.append("Content-Type:image/pjpeg" + LINE_END); // 这里配置的Content-type很重要的 ,用于服务器端辨别文件的类型的            sb.append(LINE_END);            params = sb.toString();            sb = null;            Log.i("zm", file.getName() + "=" + params + "##");            dos.write(params.getBytes());            /**上传文件*/            InputStream is = new FileInputStream(file);            //onUploadProcessListener.initUpload((int)file.length());            byte[] bytes = new byte[1024];            int len = 0;            int curLen = 0;            while ((len = is.read(bytes)) != -1) {                curLen += len;                dos.write(bytes, 0, len);                //onUploadProcessListener.onUploadProcess(curLen);            }            is.close();            dos.write(LINE_END.getBytes());            byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END).getBytes();            dos.write(end_data);            dos.flush();////          dos.write(tempOutputStream.toByteArray());            /**             * 获取响应码 200=成功 当响应成功,获取响应的流             */            int res = conn.getResponseCode();            responseTime = System.currentTimeMillis();            this.requestTime = (int) ((responseTime - requestTime) / 1000);            Log.e("zm", "response code:" + res);            if (res == 200) {                Log.e("zm", "request success");                InputStream input = conn.getInputStream();                StringBuffer sb1 = new StringBuffer();                int ss;                while ((ss = input.read()) != -1) {                    sb1.append((char) ss);                }                String result = sb1.toString();                Log.i("zm", "result:" + result);                try {                    JSONObject js = new JSONObject(result);                    tcid = js.getString("TCID");                } catch (JSONException e) {                    e.printStackTrace();                }                return;            } else {                return;            }        } catch (MalformedURLException e) {            e.printStackTrace();            return;        } catch (IOException e) {            e.printStackTrace();            return;        }    }    public String getFileName(String pathandname) {        return pathandname.substring(pathandname.lastIndexOf(".") + 1);    }    private class SendPictureDataTask extends AsyncTask<Void, Void, String[]> {        @Override        protected String[] doInBackground(Void... params) {            uploadFile(picturePath);            return null;        }        @Override        protected void onPostExecute(String[] result) {            Log.d("zm", "tcid:" + tcid);            if (!tcid.equals("")) {                new SendUserTask(tcid).execute();            }            super.onPostExecute(result);        }    }    private Bitmap getBitmap(String uploadFile) {        try {            Bitmap bitMap = BitmapFactory.decodeFile(uploadFile);            if (bitMap.getWidth() * bitMap.getHeight() < 490000) {// Caused by: java.lang.NullPointerException: Attempt to invoke virtual method                // 'int android.graphics.Bitmap.getWidth()' on a null object reference                return bitMap;            }            //图片允许最大空间   单位:KB            double maxSize = 300.00;            //将bitmap放至数组中,意在bitmap的大小(与实际读取的原文件要大)            ByteArrayOutputStream baos = new ByteArrayOutputStream();            bitMap.compress(Bitmap.CompressFormat.JPEG, 100, baos);            byte[] b = baos.toByteArray();            //将字节换成KB            double mid = b.length / 1024;            //判断bitmap占用空间是否大于允许最大空间  如果大于则压缩 小于则不压缩            if (mid > maxSize) {                //获取bitmap大小 是允许最大大小的多少倍                double i = mid / maxSize;                //开始压缩  此处用到平方根 将宽带和高度压缩掉对应的平方根倍 (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小)                bitMap = zoomImage(bitMap, bitMap.getWidth() / Math.sqrt(i),                        bitMap.getHeight() / Math.sqrt(i));            }            return bitMap;        }catch (OutOfMemoryError err){            BitmapFactory.Options opts = new BitmapFactory.Options();            opts.inSampleSize = 4;            Bitmap bmp = BitmapFactory.decodeFile(uploadFile, opts);            return bmp;        }    }    public static Bitmap zoomImage(Bitmap bgimage, double newWidth,                                   double newHeight) {        // 获取这个图片的宽和高        float width = bgimage.getWidth();        float height = bgimage.getHeight();        // 创建操作图片用的matrix对象        Matrix matrix = new Matrix();        // 计算宽高缩放率        float scaleWidth = ((float) newWidth) / width;        float scaleHeight = ((float) newHeight) / height;        // 缩放图片动作        matrix.postScale(scaleWidth, scaleHeight);        Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,                (int) height, matrix, true);        return bitmap;    }}

阅读全文
0 0
原创粉丝点击