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

最初の方法は間違いなく優れており、ダイアログをスタイルしてボーダレスにし、半透明の背景にすることができます。このリンクを確認してください。

于 2013-01-29T09:18:27.207 に答える
1

最初の方法に +1 票。ダイアログのスタイルを設定し、暗い背景を無効にします。

2 番目の方法は複雑すぎます。リストビューを子として現在のウィンドウに直接追加して、他のすべてのビューの上に描画されるようにするか、すべてのビューをフレームレイアウトに配置してリストビューをそのフレームレイアウトに追加すると、以前に追加されたすべてのビューの上に表示されます。 .

于 2013-01-29T08:52:29.007 に答える