2

行に ImageView を含む ListView があります。

これらの ImageViews の間に線を引く必要があります。

したがって、1 行は ImageView 位置の最初の行で開始され、ImageView 位置の 2 行目で終了します。等々。

これらの線を引く最良の方法は何ですか?

ありがとうございました。

アップデート。申し訳ありませんが、画像をアップロードできません。また、英語があまり上手ではありません。

行間の水平仕切りではありません。単純化すると、行は ImageView 位置の 1 つの行の垂直方向の中心から始まり、ImageView の位置の次の行の垂直方向の中心で終わります。

私は試してみるべきだと思います:

  1. 行ビューをオーバーライドします。行ビューを作成するアダプターの GetView で、隣接する行のこの行ビュー座標に渡します。ビューの onDraw メソッドで座標を計算し、線を描画します。

  2. ListView をオーバーライドします。その OnDraw メソッドで ImageView の位置を取得し、すべての線を描画しようとします。

4

3 に答える 3

6
  <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

      <ListView 
         android:id="@+id/android:list"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:divider="#FFCC00"
         android:dividerHeight="4px"/>

      </LinearLayout>

リストビュー セパレータを使用します。

于 2012-11-07T13:30:10.463 に答える
1

あなたの質問を正しく理解したかどうかはわかりませんが、これは行間に本当に素敵なグラデーションラインを作成するはずです:

    mListView = getListView();
    mAdapter = new ServersListAdapter(this, new String[] {},
            new String[] {}, new String[] {});
    int[] colors = { Color.parseColor("#D3D3D3"), Color.parseColor("#D3D3D3"), Color.parseColor("#D3D3D3") };
    mListView.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
于 2012-11-07T13:27:33.473 に答える