皆さんこんにちは!
拡大鏡を実装しようとしています。その下のコンテンツが大きく見えるようにする必要があります。
数時間後、解決策は1つしかありません。
私のxmlファイルで、次のようなものを宣言します(疑似コード):
<ZoomView>
some other content views
<View
android:id="@+id/magnifier
/>
</ZoomView>
このコードでは、ZoomView は RelativeLayout を拡張したカスタム ビューです。View with magnifier id は、コンテンツをズームする実際の拡大鏡です。
これは次のようになります。
では、コードで何が起こるか。
ZoomView の onDraw メソッドでは、このことを行います。
@Override
protected void onDraw(android.graphics.Canvas canvas)
{
Bitmap bitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888);
Canvas bitmapCanvas = new Canvas(bitmap);
super.onDraw(bitmapCanvas);
// some code that detects magnifier view position and size,
// than gets 1 area image, scale it to make in 2x bigger.
// And then replace 2 area with this scaled image.
// draw result on canvas
canvas.drawBitmap(bitmap, new Matrix(), null);
}
このコードは正常に動作しますが、遅すぎます。誰かが私に他の解決策を教えてくれますか、またはこれを最適化するにはどうすればよいですか?
何か間違っていたらすみません、これが私の最初の質問です。