首页 > 解决方案 > 从矩阵绘制和显示位图

问题描述

我是 Android 的 Java 编程新手,并且正在研究一个可能很简单的问题。我有一个由 25 个整数组成的数组,它们代表 25 个像素的颜色。我正在尝试使用 Bitmap.createBitmap 从中创建一个 5x5 位图并将其显示在 ImageView 中。

我正在使用 ARGB_8888 颜色编码,它以下列方式将十六进制用于 RGB+A(半透明): int color = (A & 0xff) << 24 | (B & 0xff) << 16 | (G & 0xff << 8 | (R & 0xff)。那么我认为没有半透明的黑色应该是 0 是对的吗?

任何帮助将不胜感激!谢谢!

我发现的所有文档都是关于使用矩阵转换(缩放和旋转)位图的。

package com.example.fingerpaint;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

public class Main2Activity extends AppCompatActivity {
    Bitmap picture;
    int[] colors = new int[25];
    int width;
    ImageView Image;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Intent mIntent = getIntent();
        width = mIntent.getIntExtra("width", 0);

        for(int k = 0; k<25; k++){
            colors[k]= (0 & 0xff) << 24;
        }
        picture = Bitmap.createBitmap(colors,5,5, Bitmap.Config.ARGB_8888);
        Image = (ImageView) findViewById(R.id.imageView);
        Image.setImageBitmap(picture);
    }
}

在我的 android 设备上执行应用程序时,没有出现错误,也没有 ImageView(应该是一个黑色的小方块)可见。

标签: javaandroid

解决方案


推荐阅读