ステイホームが続く今できる「最新プロモーション」をご紹介! 「Instagram×ARxプロモーション」WEBセミナー...
描画領域をクリップすると、クリップされた領域のみが描画対象になります。 クリップする領域を指定するCanvasクラスのメソッド 以下のCanvasクラスのメソッドを使って、クリップする領域を指定します。 boolean clipRect(float left, float top, float right, float bottom) float型の引数left, top, right, bottomで指定された矩形領域を、Region.Op.INTERSECTでクリップします。 boolean clipRect(float left, float top, float right, float bottom, Region.Op op) float型の引数left, top, right, bottomで指定された矩形領域を、Region.Opの指定に従ってクリップします。 boolea
drawBitmapメソッドの簡単なサンプル CanvasクラスのdrawBitmapメソッドを使って、Bitmapを描画する事ができます。 以下に、drawBitmapメソッドを使ってBitmapを描画する、簡単なサンプルを示します。 このプログラムを実行するには、res/drawableデレクトリに、画像ファイルsample.JPGが保存されている必要があります。 画像ファイルは、JPGだけでなくBMP,PNG,GIFも表示可能なようです。 BitmapFactory.decodeResourceメソッドは、res/drawableデレクトリの画像ファイルを、Bitmapオブジェクトとして取得するメソッドです。 drawBitmapメソッドは、CanvasにBitmapオブジェクトを描画するメソッドで、引数の意味については、次の「drawBitmapメソッドのオーバロードメソッド」を参
過去にTechBoosterでは、Canvasを使ったノウハウを公開しています。 Viewをカスタマイズ(独自実装)する ScaleGestureDetectorを使ってピンチイン、ピンチアウトを認識する Canvasの状態を保存/復帰させる 本エントリでは、CanvasにBitmapを表示する際にMatrixクラスを用いて簡易に加工(移動/回転/拡大縮小/歪み)を行う方法を紹介します。 Matrixクラスを使ってBitmapを加工することで、図形のドラッグによる移動や、ピンチアウトによる拡大などタッチパネルを持つデバイスならではの操作感を持たせることが可能となります。 ※タッチパネル上のジェスチャー(フリックやピンチアウトなど)に関する記事は以下を参考にどうぞ。 ScaleGestureDetectorを使ってピンチイン、ピンチアウトを認識する それでは続きをどうぞ。 CanvasへのB
Galleryから取得したビットマップ画像をJPEGで保存する方法にてメモリがオーバーフローすることは、画質と解像度を下げる方法で対処した →【Android】Bitmap取得後のOutOfMemoryError [ その1] しかし、画質はまぁしょうがないとしても解像度を変えるのはヨロシクナイって訳で再度調査を進めた結果、解像度を変えずに画質を下げてJPEG保存することができた そんなメモ // ビットマップ画像を取得 ContentResolver conReslv = getContentResolver(); Bitmap bitmap = MediaStore.Images.Media.getBitmap(conReslv, photoUri); long dateTaken = System.currentTimeMillis(); // 取得時のファイル名 String n
Galleryから取得したビットマップ画像をJPEGファイルとして保存する際、OutOfMemoryに見舞われた。当初、VGAで撮影した画像の取り扱いであったため気付かなかったが、Xperiaの標準カメラにて8M(16:9)撮影した画像(およそ3MB)を取り扱うと必ず出力されるエラー。 【Android】Galleryを使ってSDカード内の画像をリスト表示する 画像サイズを1/2、画質を20%落としてみると問題なくなった。 そんなわけで作ったメソッドをメモしておく。 画像サイズを変えたくない場合は、 →【Android】Bitmap取得後のOutOfMemoryError [ その2] /** * 指定URIのビットマップ画像を取得する * @param imageUri * @return * @throws IOException */ public Bitmap getBit
Android 画像合成 画像の合成(になるのかな…)は簡単です。 CanvasオブジェクトにBitmapインスタンスの画像をdrawしまくるだけです。 座標指定もできます。 1.Bitmapインスタンスを作成 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original); // 合成元 Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.d1); // 合成素材1 Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.d2); // 合成素材2 2.Canvasインスタンスを作成 int width =
こちらのサイト「http://www.anddev.org/resize_and_rotate_image_-_example-t621.html」 を参考に画像の拡大・縮小をしたがかなり面倒な手順になるので、 画像の縮小・拡大を操作するクラスを作成した ■上記サイトの画像変換手順 BitmapDrawAbleクラスを使って画像を描画するには以下の3つのクラスが必要なる Bitmapクラス BitmapDrawAbleクラス Rectクラス 描画データのりサイズをするには、さらに2つのクラスが必要になる Matrixクラス Bitmapクラス(リサイズBitmapのため一時的に必要) さらにMatrixクラスを使うにはリサイズ演算処理が必要になる リサイズスケールの算出 高さ、幅 Matrixクラスにリサイズ設定 さらにリサイズ設定をしたMatrixを使ってリサイズBitmapを新たに作成
Androidでの開発、特に画像周りを触っていると悩まされるあのにっくき「OutOfMemoryError」によるアプリの強制終了。 このOutOfMemoryErrorはAndroidアプリ内ではtry~catchなどでハンドリングすることができないようで、そもそも「起こらないように」作るしかないようです。 このOutOfMemoryErrorはAndroidアプリ内のtry~catchで捕まえられないこともあり、そもそも「起こらないように」作るのが(当然ですが)好ましいでしょう。 (2010/12/20修正) AndroidでBitmapFactoryを使ってサイズの大きな画像を読み込むサンプル – hoge256ブログ OutOfMemoryErrorを知る – hdk_embeddedの日記 これらの記事が大変参考になりました。 ざっくりまとめておきますとアプローチは大きく分けて3
android.graphics.Matrix.setTranslate(x, y); 画像の左上を x, y に移動 android.graphics.Matrix.postScale(scalex, scaley, x, y); 画面の x, y を中心(固定点)に今のサイズに横幅 scalex, 縦幅 scaley をかける android.graphics.Matrix.setScale(scalex, scaley); 初期画像の scalex, scaley 倍にする。 なぜか setScale のあとに setTranslate を呼ぶと倍率が元画像の1倍にもどるので注意。 ImageViewで上下にスペースができる初期状態に戻したいときは matrix.setTranslate(0, initY); float init = (今の倍率から初期倍率に戻すための倍率); ma
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く