android view强制重绘_重绘各种View的最简单方式。。。。。----------------------Android...

今晚搞android自定义View,遇到了一个小问题。。爬了半天帖子,才爬到。。现在在这记录下来

自定义view,有两种方式。。。。。。

1.先继承一个view---然后通过后台的draw方法给控件绘制前台效果。这个方法。对于我来说,有点操蛋。。我不太喜欢这个方式

2:继承view,然后用各种资源文件,layout文件,还有动画。。堆积成一个个控件,后台代码只要很少很少的东西就行 了。。。为什么要这样?因为这样写代码更爽。

第一步:写一个类,继承一个view-这里千万注意构造函数----不然会出错

packagecom.example.mycontrols;importandroid.content.Context;importandroid.util.AttributeSet;importandroid.widget.ListView;importandroid.widget.SimpleAdapter;importcom.example.controlshelpers.R;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/*** Created by li on 2016/3/14.*/

public class Mylistview extendsListView {//构造函数

publicMylistview(Context context,AttributeSet paramAttributeSet) {super(context,paramAttributeSet);

SimpleAdapter adapter= newSimpleAdapter(context, getData(), R.layout.mylistviewitem,new String[]{"title", "info", "img"},new int[]{R.id.title, R.id.info, R.id.img});this.setAdapter(adapter);

}private List>getData() {

List> list = new ArrayList>();

Map map = new HashMap();

map.put("title", "G1");

map.put("info", "google 1");

map.put("img", R.drawable.image1);

list.add(map);

map= new HashMap();

map.put("title", "G2");

map.put("info", "google 2");

map.put("img", R.drawable.image2);

list.add(map);

map= new HashMap();

map.put("title", "G3");

map.put("info", "google 3");

map.put("img", R.drawable.image3);

list.add(map);returnlist;

}

}

注意构造函数里的那个layout文件哦。。。这个文件在这里呢

android:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="5px" />

android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical">

android:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#FFFFFFFF"android:textSize="22px" />

android:id="@+id/info"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#FFFFFFFF"android:textSize="13px" />

好了。。。。这也,这个控件就完成了。。虽然布局什么的都很丑。。但是,原理出来了

最后一步,在另外一个工程里引用,是一个activity哦

android:id="@+id/ivMore"android:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="fitXY"android:src="@drawable/backgroundimage" />

android:id="@+id/listParent"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_alignParentLeft="true"android:layout_alignParentTop="true">

android:id="@+id/listMore"android:layout_width="256px"android:layout_height="fill_parent"android:layout_alignParentLeft="true"android:layout_alignParentTop="true" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值