gpt4 book ai didi

android - 在android中覆盖两个图像以设置一个imageview

转载 作者:IT老高 更新时间:2023-10-28 13:04:59 29 4
gpt4 key购买 nike

我试图在我的应用程序中叠加两个图像,但它们似乎在我的 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 操作并完全使用 Drawables 来完成此操作,使用 LayerDrawable .您有以下两种选择之一:您可以 define it in XML然后简单的设置图片,也可以在代码中动态配置一个LayerDrawable

解决方案 #1(通过 XML):

新建一个Drawable 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中覆盖两个图像以设置一个imageview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739971/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com