是否可以在画布中绘制listview?

时间:2013-01-29 08:40:40

标签: android android-layout

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

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

  1. 在对话框中添加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);

  3. 当我画画时

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

    然而,它什么都没有:(

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

第一种方式更好,你可以设置Dialog样式,使其成为无边界和translucenbt背景。查看this链接。