0

編集: --> やあみんな! <--

私は「画像ベースのアプリ」に取り組んでいます!私がやりたいことは次のとおりです。

  1. 写真を撮る(完了)
  2. オーバーレイで写真をプレビュー!
  3. 写真をトリミングする

問題はオーバーレイです!内部に撮影した写真を含む SurfaceView があり、ウィンドウのような正方形 (rect2) とアルファ オーバーレイ (rect1 アルファ 50% のある種の黒) の周りを見たいと思います。1つはフルサイズ(rect1)、もう1つは小さいサイズ(rect2)で2つのRectを描画し、最初のRectから小さい方を切り取ることは可能ですか??

______________
|Rect1       |
|   ______   |
|  |Rect2 |  |
|  |      |  |
|  |______|  |
|____________| 

私はAndroid 2.1を使用しています。2.3.3 には BitmapRegionDecoder があることを知っています。このことは、私がやりたいことのほとんどを行います。現時点では、4 つの Rect を描画し、ウィンドウの中央に小さな穴を残していますが、この正方形を移動してサイズを変更するのは私の A ** の苦痛のようなものです。

編集: 私がやりたいことは、Facebook のようなものです。写真を Profileimage としてアップロードする場合、何かを投稿するときに左側の「アバター」画像の画像の正方形を移動してサイズを変更する必要があります...

だから私はすべてが明確であり、あなたが私を助けることができることを願っています!

ありがとう

4

2 に答える 2

0

コンテナのようにFrameLayoutを使用したり、SurfaceView(rect)を配置したりすることができます。また、removeViewを使用すると、findviewbyidでキャプチャすることにより、必要なrectを削除できます。

これがお役に立てば幸いです。さよなら

于 2011-08-04T16:24:01.563 に答える
0
public class yourActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new yourCanvas(this));
}

class yourCanvas extends View {
    public Panel(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Bitmap yourBitmap = getYourBitmap();
        canvas.drawBitmap(_yourBitmap, 50, 50, null);
        canvas.drawRect(0,0,canvas.getWidth(),50,null); //top rect
        canvas.drawRect(0,0,50,canvas.getHeight(),null); //left rect
        canvas.drawRect(50+yourBitmap.getWidth(),0,canvas.getWidth(),canvas.getHeight(),null); //right rect
        canvas.drawRect(0,50+yourBitmap.getHeight(),canvas.getWidth(),canvas.getHeight(),null); //Bottom rect
    }
}

}


imageviewの境界線を作成したいだけの場合は、前の回答が適しています

私は以下を提案したいと思います:

  1. ImageViewのビットマップをビットマップに設定する
  2. 背景色を外側の長方形にしたい色に設定します
  3. 目的の寸法を取得するためのパディングパラメータの設定
于 2011-08-04T16:24:02.053 に答える