Xutils3.0框架的初始体验二
来源:互联网 发布:单片机液晶数字钟论文 编辑:程序博客网 时间:2024/05/30 23:15
一、注解模块
Activity的注解
1.在Application的oncreate方法中加入下面代码: x.Ext.init(this);
2.在Activity的oncreate方法中加入下面代码: x.view().inject(this);
3.加载当前的Activity布局需要如下注解:
@ContentView加入到Activity的上方
4.给View进行初始化需要如下注解:
@ViewInject
5.处理控件的各种响应事件需要如下注解:
@Envent
例子如下:
@ContentView(R.layout.activity_main)public class MainActivity extends ActionBarActivity { @ViewInject(R.id.btn_get) Button btn_get; @ViewInject(R.id.btn_post) Button btn_post; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); x.view().inject(this); btn_get.setText("发送get请求"); btn_post.setText("发送post请求"); } //等同于@Event(value={R.id.btn_get,R.id.btn_post},type=View.OnClickListener.class) @Event(value={R.id.btn_get,R.id.btn_post}) private void getEvent(View view){ switch(view.getId()){ case R.id.btn_get: Toast.makeText(MainActivity.this, btn_get.getText().toString().trim(), 0).show(); break; case R.id.btn_post: Toast.makeText(MainActivity.this, btn_post.getText().toString().trim(), 0).show(); break; } }
@Event这个注解默认情况下type属性为View.OnClickListener.class.如果你想实现其余点击事件效果,只需要把type值进行修改即可。
另外需要注意的一点是按钮的点击事件必须用private进行修饰。
Fragment的注解:
@ContentView(R.layout.fragment_first) public class FirstFragment extends Fragment{ private MyAdapter adapter; private List<Person> list=new ArrayList<>(); private List<String> listUrl=new ArrayList<>(); private List<String> listName=new ArrayList<>(); @ViewInject(R.id.btn_test) Button btn_test; @ViewInject(R.id.listView) ListView listView; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return x.view().inject(this, inflater, container); }
ViewHolder的注解
public class MyAdapter extends BaseAdapter{ private Context context; private List<Person> list; private LayoutInflater mInflater; private ImageOptions options; public ViewHolder holder; public MyAdapter(Context context, List<Person> list) { this.context = context; this.list = list; this.mInflater=LayoutInflater.from(context); options=new ImageOptions.Builder().setLoadingDrawableId(R.drawable.ic_launcher) .setLoadingDrawableId(R.drawable.ic_launcher).setUseMemCache(true).setCircular(true).build(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { holder=null; if(convertView==null){ convertView=mInflater.inflate(R.layout.itemone, null); holder=new ViewHolder(); x.view().inject(holder,convertView); convertView.setTag(holder); } else{ holder=(ViewHolder) convertView.getTag(); } Person bean=list.get(position); holder.tv_name.setText(bean.getName()); x.image().bind(holder.iv_image, bean.getImgUrl(), options); return convertView; } class ViewHolder{ @ViewInject(R.id.tv_name) private TextView tv_name; @ViewInject(R.id.iv_image) private ImageView iv_image; }
二、图片加载模块
用法:
x.image().bind(imageView, url, imageOptions);x.image().bind(imageView, "file:///sdcard/test.gif", imageOptions);x.image().bind(imageView, "assets://test.gif", imageOptions);x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback<Drawable>() {...});x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...});x.image().loadFile(url, imageOptions, new Callback.CommonCallback<File>() {...});第一个参数传入一个View,第二个参数传入一个图片的网络地址,第三个参数一般是加载图片的配置。
现在看一下ImageOptions这个类
ImageOptions options=new ImageOptions.Builder()//设置加载过程中的图片.setLoadingDrawableId(R.drawable.ic_launcher)//设置加载失败后的图片.setFailureDrawableId(R.drawable.ic_launcher)//设置使用缓存.setUseMemCache(true)//设置显示圆形图片.setCircular(true)//设置支持gif.setIgnoreGif(false).build();
如果需要对加载的图片进行操作的话,可以使用:
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback<Drawable>() {...});
通过返回的Drawable对象进行图片的处理,满足项目的个性化的要求.
0 0
- Xutils3.0框架的初始体验二
- Xutils3.0框架的初始体验一
- XUtils3框架的基本使用方法(二)
- XUtils3框架的基本使用方法(二)
- XUtils3框架的使用
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils===XUtils3框架的基本使用方法(二)
- XUtils3框架的基本使用方法
- xUtils3.0框架学习笔记
- xUtils3.0框架学习笔记
- Android xUtils3.0框架解析
- XUtils3.0快速开发框架
- 关于xutils3.0框架的封装以及抽取,方便使用
- xUtils3框架
- XUtils3框架
- 常用开发工具镜像,不用翻墙,即可下载Chrome Android Studio Gradle Golang NDK SDK NodeJS
- F - 平方和与立方和
- H264中提取sps和pps
- 网易面试题之小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹
- 第11篇 防火墙穿越及信令及php表单必需字段
- Xutils3.0框架的初始体验二
- android---- 引入本地aar 包 failed to resolve:xxx
- Codeforces Round #381 (Div. 2) A. Alyona and flowers
- 《Python简易教程》读书笔记
- printk打印级别输出
- 《Linux内核的设计与实现》读书笔记(二)---从内核出发
- java的基本数据类型
- 图片拉伸的处理的三种方式
- Mac RobotFramework 环境安装