[解決済み] アンドロイドで2つの画像を重ね合わせ、イメージビューを設定する
2023-01-12 17:26:02
質問
私のアプリで2つの画像を重ね合わせようとしているのですが、私の
canvas.setBitmap()
行でクラッシュするようです。私は何を間違えているのでしょうか?
private void test() {
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.t);
Bitmap mBitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.tt);
Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), mBitmap.getConfig());
Canvas canvas = new Canvas();
canvas.setBitmap(bmOverlay);
canvas.drawBitmap(mBitmap, new Matrix(), null);
canvas.drawBitmap(mBitmap2, new Matrix(), null);
testimage.setImageBitmap(bmOverlay);
}
どのように解決するのですか?
複雑なCanvasの操作を省略して、Drawableで完全に行うことができます。
LayerDrawable
. 選択肢は2つあります。どちらかです。
で定義する。
で定義し、単に画像を設定するか、あるいは
LayerDrawable
をコードで動的に構成することもできます。
解決策1 (XML経由)。
新しい描画可能な XML ファイルを作成します。
layer.xml
:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/t" />
<item android:drawable="@drawable/tt" />
</layer-list>
では、そのDrawableを使って画像を設定します。
testimage.setImageDrawable(getResources().getDrawable(R.layout.layer));
解決策その2(動的)。
Resources r = getResources();
Drawable[] layers = new Drawable[2];
layers[0] = r.getDrawable(R.drawable.t);
layers[1] = r.getDrawable(R.drawable.tt);
LayerDrawable layerDrawable = new LayerDrawable(layers);
testimage.setImageDrawable(layerDrawable);
(このコードをテストしていないので、間違いがあるかもしれませんが、この大枠はうまくいくはずです)
関連
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Android Webview - キャッシュを完全に削除する
-
[解決済み] handler.postDelayed()を停止する。
-
[解決済み] XMLで矩形を描画できますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] Eclipseでのandroid:configChangesでのAdmobエラー
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] XMLで矩形を描画できますか?
-
[解決済み] ArrayList<MyCustomClass>をJSONArrayに変換する。
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Google Play ストア内部テストのロールアウトが開始できない
-
[解決済み] 文字列リソースにHTML?