现在的位置: 首页 > 移动开发 > 正文

在android 自定义listView中绘制矩形

2019年09月11日 移动开发 ⁄ 共 2466字 ⁄ 字号 评论关闭
文章目录

我想在android 在listview中绘制自定义的形状,我在网上找了代码但是没有运行通过,我现在有一个可以绘制矩形的 DrawView.java类,我想在我的自定义listView中展示这个对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
DrawView.java
package

com.example.horizontalscrollview;
import

android.content.Context;
import

android.graphics.Canvas;
import

android.graphics.Color;
import

android.graphics.Paint;
import

android.view.View;
 
public

class

DrawView
extends

View {
  
    Paint
paint =
new

Paint();
 
 
 
    public

DrawView(Context context) {
  
        super(context);           
  
    }
 
 
 
    @Override
  
    public

void

onDraw(Canvas canvas) {
  
        paint.setColor(Color.BLACK);
  
        paint.setStrokeWidth(3);
  
        canvas.drawRect(30,
30,
180,
180,
paint);
 
 
 
 
    }
 
 
 
}
}

我的配置文件如下

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
    android:layout_width="wrap_content"
 
    android:layout_height="wrap_content"
 
    android:orientation="vertical"
 
    android:layout_margin="60dp"
 
    android:id="@+id/mainLayout"
 
     >

 

     <com.example.horizontalscrollview.DrawView
 
        android:id="@+id/drawview"
 
        android:layout_width="wrap_content"
 
        android:layout_height="wrap_content"
 
        android:layout_alignParentBottom="true" >
 
      </com.example.horizontalscrollview.DrawView>

 

<
</LinearLayout>

listview 适配器的   getView() 函数如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public

View getView(
final

int

position,  View convertView,
final

ViewGroup parent) {
 
 
 
        Toast.makeText(c,
"Clicked
on="
+position,
1).show();
  
        convertView
= mInflater.inflate(R.layout.news_list_item,
null);
  
        DrawView
rl = (DrawView)convertView.findViewById(R.id.drawview);
  
        DrawView
draw =
new

DrawView(c);
  
        rl=draw;
  
        return

convertView;
}
}

处理方法

追加下面的xml内容

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
a
android:layout_width="wrap_content"
a
android:layout_height="wrap_content"
a
android:orientation="vertical"
 
 android:layout_margin="60dp"
a
android:id="@+id/mainLayout"
 
 >

 

 <com.example.horizontalscrollview.DrawView
 
    android:id="@+id/drawview"
 
    android:layout_width="wrap_content"
 
    android:layout_height="wrap_content"
 
    android:layout_alignParentBottom="true" >
 
  </com.example.horizontalscrollview.DrawView>

 

<
</LinearLayout>

getView 方法如下:
public View getView(final int position,  View convertView, final ViewGroup parent) {

 

    Toast.makeText(c, "Clicked on="+position, 1).show();
 
    convertView = mInflater.inflate(R.layout.news_list_item,null);

 

    return convertView;
}
}

这个应该能够正常运行

原文地址:http://www.itmmd.com/201411/120.html 
该文章由 萌萌的IT人 整理发布,转载须标明出处。

抱歉!评论已关闭.