私がしたいことは、自分が選んだ位置に画像の切り抜きを画面に描画することです。画面の一部を描画する(メモリにすべてをロードせずに)
私はこれをビットマップに簡単に読み込むことができます。サブセクションを描画します。
しかし、画像が大きくなると、明らかにメモリが使い果たされます。
私の画面は表面ビューです。キャンバスなどがあります。
画像の一部を所定のオフセットで描画し、サイズを変更するにはどうすればよいですか。オリジナルのメモリをロードせずに
私は正しい線に沿って見える答えを見つけましたが、正しく動作しません。ファイルからのドロアブルの使用。以下のコードを試してください。それが生成するランダムなサイズ変更とは別に、不完全です。
例:
Drawable img = Drawable.createFromPath(Files.SDCARD + image.rasterName);
int drawWidth = (int) (image.GetOSXWidth()/(maxX - minX)) * m_canvas.getWidth();
int drawHeight = (int)(image.GetOSYHeight()/(maxY - minY)) * m_canvas.getHeight();
// Calculate what part of image I need...
img.setBounds(0, 0, drawWidth, drawHeight);
// apply canvas matrix to move before draw...?
img.draw(m_canvas);
'BitmapRegionDecoder'を見てください。あなたが探しているものとまったく同じだと思います。 – bobnoble
@bobnoble javadocsを見ていただきありがとうございます、それはトリックを行うように思えます。そして、使用するのはかなり簡単です。 – Doomsknight
これを返信@bobnobleと書くと便利です。 – Elemental