将位图设置为图像视图的大小

时间:2014-07-23 04:44:38

标签: android bitmap android-imageview android-bitmap

我在imageview中从oneActivity获取bitmap到secondSctivity。现在我希望这个位图与Imageview的大小相同。但是这段代码现在正在运作。

    ViewTreeObserver vto = ph.getViewTreeObserver(); 
    vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
        public boolean onPreDraw() {
            ph.getViewTreeObserver().removeOnPreDrawListener(this); 
            ph.getMeasuredWidth();
            ph.getMeasuredHeight(); 
            return true;
            } 
        });


    // set contact Photo Bitmap in Image view-------------------------------------------------

    byte[] byteArray = getIntent().getByteArrayExtra("image");
    if (byteArray != null) {
        bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
    }

    if (bmp != null) {
        Bitmap bmpimg = Bitmap.createScaledBitmap(bmp,ph.getMeasuredWidth(),ph.getMeasuredHeight() , true);
        ph.setImageBitmap(createRoundedBitmap(bmpimg,5));



    } else {
        ph.setImageResource(R.drawable.upload_photo);
    }

我必须为此做些什么?

2 个答案:

答案 0 :(得分:0)

你可以通过imageViewObject.getWidth()得到ImageView大小;和obj.getHeight();然后按照未经测试的值对你的位图进行缩放。

Bitmap bmpimg = Bitmap.createScaledBitmap(bmp, obj.getWidth(), getHeight(), true);

我希望这会有所帮助。

答案 1 :(得分:0)

这是一个非常简单易用的解决方案,我相信它对您有用 使用" scaleType"您的xml文件中的ImageView属性 保持为" scaleType = fitXY" 这里是最热门的

 <ImageView
            android:id="@+id/img1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitXY"/>

享受编码