3

在此处输入图像描述

我在一个 android 应用程序中工作,我想ImageView在我的视图中放置一个特定的位置。为此,我应用了特定代码并成功运行:

ImageView image = (ImageView) findViewById(R.id.imageView1);
Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.mrng);
Matrix mat = new Matrix();
mat.postRotate(350);
Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(),bMap.getHeight(), mat, true);
image.setImageBitmap(bMapRotate);

现在我想为这个图像设置一个边框。为此,我制作了一个形状 xml,并将其设置为图像视图的背景。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF" />
    <stroke android:width="3dp" android:color="#000000" />
</shape>

但是当我给图像视图的背景形状时,它没有给出正确的输出。请帮助我。

我不想要 ImageView 周围的边框,而是旋转图像周围的边框。

4

2 回答 2

4

编辑:我正在根据问题的澄清完全重写我的答案。这就是我如何实现你想要的。这个想法是绘制框架然后旋转:

    ImageView image = (ImageView) findViewById(R.id.TestImage);
    Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.image);

    final int BORDER_WIDTH = 3;
    final int BORDER_COLOR = Color.BLACK;
    Bitmap res = Bitmap.createBitmap(bMap.getWidth() + 2 * BORDER_WIDTH,
                                     bMap.getHeight() + 2 * BORDER_WIDTH,
                                     bMap.getConfig());
    Canvas c = new Canvas(res);
    Paint p = new Paint();
    p.setColor(BORDER_COLOR);
    c.drawRect(0, 0, res.getWidth(), res.getHeight(), p);
    p = new Paint(Paint.FILTER_BITMAP_FLAG);
    c.drawBitmap(bMap, BORDER_WIDTH, BORDER_WIDTH, p);

    Matrix mat = new Matrix();
    mat.postRotate(350);
    Bitmap bMapRotate = Bitmap.createBitmap(res, 0, 0, res.getWidth(), res.getHeight(), mat, true);
    image.setImageBitmap(bMapRotate);        

这是结果的屏幕截图:

在此处输入图像描述

于 2012-06-11T07:16:07.737 回答
0

有办法在 ImageView 周围放置边框,甚至是 android 中的任何视图。在 XML<View>中,在 imageview 的每一侧放置四个 simple 。这些视图可以分配任何类型的样式。您可以使用相对布局,您可以在图像视图周围轻松放置四个边框。

有点漫长的过程,但有效。

于 2012-06-11T07:12:50.330 回答