画像にフレームを追加する必要があるアプリを作成したい.これを再評価する考えはありません.フレームが画像に追加されるリンクが1つあります.誰か助けてください.
リンクはこちら
@前もって感謝します!!
編集:ギャラリーOnItemClickListener
gallery.setOnItemClickListener(new OnItemClickListener() {
Bitmap frame = null, out = null;
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Bitmap urImage = BitmapFactory.decodeResource(getResources(),
R.drawable.urBackgroundImageID);//edit
frame = BitmapFactory.decodeResource(getResources(),
frames[arg2]);
out = combineImages(frame, urImage);
imageView.setImageBitmap(out); //add "out" for ur ImageView
}
});
frames[]
ドローアブルの配列、つまり異なるフレームです
次の方法では、2つの画像を動的に結合します
public Bitmap combineImages(Bitmap frame, Bitmap image) {
Bitmap cs = null;
Bitmap rs = null;
rs = Bitmap.createScaledBitmap(frame, image.getWidth(),
image.getHeight(), true);
cs = Bitmap.createBitmap(rs.getWidth(), rs.getHeight(),
Bitmap.Config.RGB_565);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(image, 0, 0, null);
comboImage.drawBitmap(rs, 0, 0, null);
if (rs != null) {
rs.recycle();
rs = null;
}
Runtime.getRuntime().gc();
return cs;
}
でさまざまな整数値を試すことができます
comboImage.drawBitmap(image, 0, 0, null);
comboImage.drawBitmap(rs, 0, 0, null);
0
画像上で必要なフレーム位置を取得するために配置した場所。
多くの方法があります。非常に簡単な方法は、ビューの onDraw メソッドで画像の上にカスタム フレームを描画してから、ビットマップでビューを描画することです。フレームピクセルデータを画像ピクセルデータに書き込み、新しい画像をフレームと組み合わせる別の方法があります。openCVまたは他の3番目のライブラリを使用して画像をデコードできます。
<FrameLayout
android:id="@+id/frame"
android:layout_width="120dp"
android:layout_height="120dp"
android:foreground="@drawable/your frame...">
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:layout_gravity="center"
android:src="@drawable/ic_launcher" />
</FrameLayout>