1

现在我使用 canvas( ondraw()) 来绘制我的应用程序的图像,如果我想展示一些

在我的应用程序中心列出。我应该怎么做?我有2个想法。

  1. 在Dialog中添加ListView,但是屏幕很暗,我不希望这样。

  2. 在 LinearLayout 中添加 ListView 并使其Bitmap无法绘制图像,我的

    代码如下:

    ListView modeList = new ListView(context); modeList.setAdapter(new ImageAdapter(context, objects)); linearlayout = new LinearLayout(context); linearlayout.setOrientation(LinearLayout.VERTICAL); linearlayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); linearlayout.addView(modeList); linearlayout.layout(0, 0, 200, 200); linearlayout.measure((int)Define.getScreenWidth(), (int)Define.getScreenHeight()); linearlayout.setDrawingCacheEnabled(true); linearlayout.buildDrawingCache(true);

当我画画的时候

protected void onDraw(Canvas canvas) { canvas.drawBitmap(linearlayout.getDrawingCache(), 200, 200, null); }

但是,它什么也没画:(

4

2 回答 2

1

+1 投票给第一种方式。设置对话框样式并禁用深色背景。

第二种方法过于复杂。您最好将 listview 作为子项直接添加到当前窗口,因此它将绘制在所有其他视图之上,或者将所有视图放在框架布局中并将列表视图添加到该框架布局中,因此它将位于所有先前添加的视图之上.

于 2013-01-29T08:52:29.007 回答
1

第一种方式更好,您可以将 Dialog 样式设置为无边界并具有半透明背景。检查链接。

于 2013-01-29T09:18:27.207 回答