0

私は現在、SurfaceViewにオブジェクトを配置できるアプリ(画像など)に取り組んでおり、サイズを変更したりすることができます。今、私は誰かが画像のようなフレームに配置できるユースケースを持っています-中央が透明な正方形の画像としましょう。これで、このフレーム内に入ることができ、そのフレームの境界のみに制限される画像を設定でき、そこから自由にサイズを変更できます。誰かがこのような実装をしますか?これは、フレームが全画面表示の場合とは異なり、簡単に実行できることに注意してください。以下の私のサンプルを参照してください。

ここに画像の説明を入力してください

緑はSurfaceViewのメインの背景領域であり、彼は栗色/赤のフレームを追加しました。次に、フレーム内に画像を配置するように設定します(これはすべて同じサーフェス内にあります)。今回の主な違いは、ここで画像のサイズを変更/移動するときは、赤い枠で囲まれている必要があることです(下の写真のように画像が外側に重なることはありません)。誰もがAndroidでこれを行う方法を経験しています。

4

1 に答える 1

0

clipRect()Canvasの方法を使用します。フレームを作成する画像を描画する前に、フレームを指定する長方形を指定できます。このようなものが機能するはずです:

まず、フレームを移動するときに、対応するものが必要ですRect

myRect.set(frameleft, frametop, frameright, framebottom);

そして、あなたonDraw()はこの長方形で写真をクリップします:

canvas.save(Canvas.CLIP_SAVE_FLAG);
canvas.clipRect(pictureRect);
canvas.drawBitmap(/*your drawing parameters for the image*/);
canvas.restore(); //Restore to drawing the entire canvas
于 2013-02-14T18:58:52.533 に答える