java - Android 应用程序 - 从 Activity 绘制位图

标签 java android bitmap

我正在尝试在屏幕上绘制一个简单的 .png 文件。我正在使用以下代码:

public class EditMindMapActivity extends Activity {

    private Button HomeButton;
    private Button SaveButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_mind_map);

        //creating dummy array:
        List<String> mindMapArrayListLabels = new ArrayList<String>();
        int mindMapArrayListImgs[] = new int[100]; //length 100 is arbitrary

        mindMapArrayListLabels.add("Schedule");
        mindMapArrayListImgs[0] = R.drawable.pyr01;
        mindMapArrayListLabels.add("Stuff01");
        mindMapArrayListImgs[1] = R.drawable.tube01;
        mindMapArrayListLabels.add("Stuff02");
        mindMapArrayListImgs[2] = R.drawable.cone01;

        //draw the first image to screen
        View view01 = new View(this); 
        //find relative layout, attach view to it.
        RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.RelativeLayout01);
        LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
        relativeLayout.addView(view01,lp);
        Canvas canvas01 = new Canvas();
        canvas01.drawBitmap(BitmapFactory.decodeResource(getResources(), mindMapArrayListImgs[0]), 10, 10, null);
        view01.draw(canvas01);
    }
}

以上内容没有执行任何操作 - 屏幕显示为空白。我想在屏幕上显示图像 R.drawable.pyr01。

最佳答案

创建自定义 View 并绘制图像。将自定义 View 作为 subview 添加到您的相对布局中。根据您的需要修改以下内容。

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/rl"
tools:context=".MainActivity" >

    <Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:text="Button" />

   </RelativeLayout>

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.rl);
    MyView mv = new MyView(this);
    relativeLayout.addView(mv);
}

class MyView extends View
{

    public MyView(Context context) {
        super(context);

    }

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.afor), 100 ,100, null);
    }

}

快照结果

enter image description here

关于java - Android 应用程序 - 从 Activity 绘制位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16307725/

相关文章:

java - 如何设计相互依赖的可扩展类型基础设施

c# - 如何以编程方式将文本添加到位图图像? WPF

java - 如何使用房间库?

java - 当我打印一个字符串值来控制台时,它会打印,但是当我尝试将此字符串放入双字符串数组时,它返回空

android - 更新 getCheckedItemPositions()

android - 您如何决定 Android 基线可绘制对象的像素尺寸?

java - UIImage,Android 中的 imageWithData?

java - 在 Android 中存储和显示图像的最佳方式

java - "Textfield validation not working properly"

android - 如何删除Android工具栏的左边距?