我以位图的形式显示了一个全屏图像,我必须将其保存到sd卡中,并在右下角放置一个公司徽标, 我知道如何将位图叠加到另一个 但是我的第二个位图很小而第一个位图很大 我想将第二位图放置在第一位图的右下角位置。
private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, new Matrix(), null);
return bmOverlay;
}
Android: How to overlay-a-bitmap/draw-over a bitmap?
就像在此右上角的汽车图像上的徽标一样。
答案 0 :(得分:1)
如果您的应用程序文件夹中只有恒定资源文件,则可以尝试这样做。
在xml布局中,添加第二个ImageView并添加android:translationZ="2dp"
,使其位于主背景图像上方。 (这是在使用ConstraintLayout
时,否则可以将其替换为FrameLayout
,它将自动完成操作。
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="330dp"
>
<android.support.v7.widget.AppCompatImageView
android:id="@+id/overlayImage"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_margin="2dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:scaleType="centerCrop"
android:translationZ="2dp"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.94"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="parent"
app:layout_constraintVertical_bias="0.16000003" />
<android.support.v7.widget.AppCompatImageView
android:id="@+id/mainImage"
android:layout_width="448dp"
android:layout_height="190dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="parent"
/>
</android.support.constraint.ConstraintLayout>
之后,只需添加图像即可。例如,我将使用Glide(如果您以前没有使用过,建议检查一下)。
GlideApp.with(context)
.load(pathToBitmap)
.into(mainImage)
GlideApp.with(context)
.load(pathToBitmap)
.into(overlayImage)