将一个小位图(公司徽标)绘制到另一个大位图(全屏图像)并放置在右侧

时间:2018-07-24 08:01:14

标签: android bitmap

我以位图的形式显示了一个全屏图像,我必须将其保存到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;
    }

enter image description here到目前为止,我已经尝试过

Android: How to overlay-a-bitmap/draw-over a bitmap?

就像在此右上角的汽车图像上的徽标一样。

1 个答案:

答案 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)