Android:Canvas.drawBitmap() 或 Imageview.setImageBitmap(bitmap)

发布于 2024-11-29 11:29:40 字数 1098 浏览 4 评论 0原文

假设我想创建一个显示 12 个不同 PNG 图像的活动。

我应该创建一个扩展 View 的类(比方说“MyView”),在其中使用 canvas.drawBitmap(...) 吗?

public class MyActivity extends Activity {

    private MyView myView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        myView = new MyView(this);
        setContentView(myView);
        myView.requestFocus();
    }
    ...
}

public class MyView extends View {

    @Override
    protected void onDraw(Canvas canvas) {
        // do that 12 times ...
        canvas.drawBitmap(...)
    }
}

或者我应该使用 12 个 ImageView 对象并在每个对象中设置位图?

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        LinearLayout root = new LinearLayout(this);

        // do that 12 time ...
        ImageView imageView = new ImageView();
        Bitmap bitmap = BitmapFactory.decodeFile(...);
        imageView.setImageBitmap(bitmap);
        root.addView(imageView);
    }
    ...
}

Suppose I want to create an activity that displays 12 different PNG images.

Should I create a class extending View (let say "MyView") in which I would use canvas.drawBitmap(...)?

public class MyActivity extends Activity {

    private MyView myView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        myView = new MyView(this);
        setContentView(myView);
        myView.requestFocus();
    }
    ...
}

public class MyView extends View {

    @Override
    protected void onDraw(Canvas canvas) {
        // do that 12 times ...
        canvas.drawBitmap(...)
    }
}

Or should I use 12 ImageView objects and set the bitmap in each one of it?

public class MyActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        LinearLayout root = new LinearLayout(this);

        // do that 12 time ...
        ImageView imageView = new ImageView();
        Bitmap bitmap = BitmapFactory.decodeFile(...);
        imageView.setImageBitmap(bitmap);
        root.addView(imageView);
    }
    ...
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千寻… 2024-12-06 11:29:40

我认为创建 ImageView 会产生更多开销。

但是,它将提供更容易实现的功能

I think creating an ImageView will have more overhead.

However, it will provide more easily implemented functions

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文