如何在android中将imageView设置为方形视图?

时间:2015-04-03 03:19:31

标签: android bitmap imageview

我想创建一个查看图像/海报的应用程序,我希望imageView在方形中。在此之前,我尝试获取屏幕宽度并将其分配给图像的高度和宽度,如下所示

Bitmap newicon = Bitmap.CreateBitmap (int x, int y, int width, int height, matrix, false/true);

但是发生错误" x + width< = bitmap.width()"。这是我到目前为止创建的示例,但我将高度设置为400dp。我希望高度和宽度灵活取决于手机的大小。有任何想法吗?

<ImageView
                android:src="@android:drawable/ic_menu_gallery"
                android:layout_width="match_parent"
                android:layout_height="400dp"
                android:adjustViewBounds="true"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:scaleType="centerCrop"
                android:id="@+id/ivPoster" />

enter image description here

1 个答案:

答案 0 :(得分:3)

您需要使用自定义imageview,请看一下:

public class SquareImageView extends ImageView {
    public SquareImageView(Context context) {
        super(context);
    }

    public SquareImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public SquareImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); // Snap to width
    }
}

在布局文件中使用它而不是ImageView。

希望这有帮助!