gpt4 book ai didi

Android:在特定位置绘制位图,拒绝绘制

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:14 25 4
gpt4 key购买 nike

首先让我先说一下,我对编写 Java 几乎是个新手,所以我希望得到完整的解释。不仅仅是一堆代码,而是一些在网站上给出了为什么以及应该在哪里的东西

我目前正在尝试编写一个应用程序,但我在使用 Canvas 和在其上绘制我想要的位图时遇到了一些问题。这是我绘制图像的代码:

Canvas canvas = null;
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.image);
canvas.drawBitmap(image, 10, 800, null);

此方法(预期)会抛出空指针异常。然而,将“canvas”定义为 null 是 Eclipse 给我的唯一选择。当试图将其定义为

Canvas canvas = new Canvas();

Android 只是拒绝绘制位图。我确定我的图像位于 res/drawable/image如果有帮助,图像将保存为“image.png”

我如何让 Android 在特定位置显示/显示我的图像/位图我要求它绘制图像 (10x800)?

最佳答案

写解决编译器错误的废话并不能改变它是废话的事实! :)

您必须以其他方式获取对 Canvas 对象的引用。您可能想要更具体地说明您到底想做什么,以便我们可以建议您应该如何去做。 (例如,你是想只显示一张图片和其他一些 View 吗?你是想创建一个自定义 View 吗?你可能只想考虑使用 ImageView)

编辑:

您应该在 developer.android.com 上阅读有关 Android 架构的信息。如果您只是想显示图像,则可能没有理由直接使用 Canvas 。尽管如此,您可以通过扩展 View 类在自定义 View 中绘制

class myView extends View{

Bitmap bm;

loadBitmap()
{
bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
}

@Override
public void draw(Canvas c)
{
c.drawBitmap(bm, XCORD, YCORD, null);
}
}

如果您不需要自定义 View ,只需使用 ImageView 类即可

class MyActivty extends Activity{
@Override
public void onCreate(Bundle b)
{
super.onCreate(b);
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.pic);
setContentView(iv);
}
}

警告:这些方法调用是我随手写的,它们可能略有偏差。

关于Android:在特定位置绘制位图,拒绝绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9050996/

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