• 7.首页、bitmaputils


    HomeProtocol
    1. public class HomeProtocol extends BaseProtocol<List<AppInfo>>{
    2. // 1 把整个json文件写到一个本地文件中 **
    3. // 2 把每条数据都摘出来存到数据库中
    4. // 见到大括号 就用JsonObject ,见到中括号就是JsonArray
    5. public List<AppInfo> paserJson(String json) {
    6. List<AppInfo> appInfos=new ArrayList<AppInfo>();
    7. try {
    8. JSONObject jsonObject=new JSONObject(json);
    9. JSONArray jsonArray = jsonObject.getJSONArray("list");
    10. for(int i=0;i<jsonArray.length();i++){
    11. JSONObject jsonObj = jsonArray.getJSONObject(i);
    12. long id=jsonObj.getLong("id");
    13. String name = jsonObj.getString("name");
    14. String packageName=jsonObj.getString("packageName");
    15. String iconUrl = jsonObj.getString("iconUrl");
    16. float stars=Float.parseFloat(jsonObj.getString("stars"));
    17. long size=jsonObj.getLong("size");
    18. String downloadUrl = jsonObj.getString("downloadUrl");
    19. String des = jsonObj.getString("des");
    20. AppInfo info=new AppInfo(id, name, packageName, iconUrl, stars, size, downloadUrl, des);
    21. appInfos.add(info);
    22. }
    23. return appInfos;
    24. } catch (JSONException e) {
    25. e.printStackTrace();
    26. return null;
    27. }
    28. }
    29. @Override
    30. public String getKey() {
    31. return "home";
    32. }
    33. }
    BaseListView (自定义listview)
     
    1. public class BaseListView extends ListView {
    2. public BaseListView(Context context) {
    3. super(context);
    4. init();
    5. }
    6. public BaseListView(Context context, AttributeSet attrs, int defStyle) {
    7. super(context, attrs, defStyle);
    8. init();
    9. }
    10. public BaseListView(Context context, AttributeSet attrs) {
    11. super(context, attrs);
    12. init();
    13. }
    14. private void init() {
    15. // setSelector 点击显示的颜色
    16. // setCacheColorHint 拖拽的颜色
    17. // setDivider 每个条目的间隔 的分割线
    18. this.setSelector(R.drawable.nothing); // 什么都没有
    19. this.setCacheColorHint(R.drawable.nothing);
    20. this.setDivider(UiUtils.getDrawalbe(R.drawable.nothing));
    21. }
    22. }

    HomeFragment 
    1. public class HomeFragment extends BaseFragment {
    2. private List<AppInfo> datas;
    3. // 当Fragment挂载的activity创建的时候调用
    4. @Override
    5. public void onActivityCreated(Bundle savedInstanceState) {
    6. super.onActivityCreated(savedInstanceState);
    7. show();
    8. }
    9. public View createSuccessView() {
    10. BaseListView listView=new BaseListView(UiUtils.getContext());
    11. listView.setAdapter(new HomeAdapter());
    12. // 第二个参数 慢慢滑动的时候是否加载图片 false 加载 true 不加载
    13. // 第三个参数 飞速滑动的时候是否加载图片 true 不加载
    14. listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
    15. bitmapUtils.configDefaultLoadingImage(R.drawable.ic_default); // 设置如果图片加载中显示的图片
    16. bitmapUtils.configDefaultLoadFailedImage(R.drawable.ic_default);// 加载失败显示的图片
    17. return listView;
    18. }
    19. private class HomeAdapter extends BaseAdapter{
    20. @Override
    21. public int getCount() {
    22. return datas.size();
    23. }
    24. @Override
    25. public View getView(int position, View convertView, ViewGroup parent) {
    26. View view;
    27. ViewHolder holder;
    28. if(convertView==null){
    29. view=View.inflate(UiUtils.getContext(), R.layout.item_app, null);
    30. holder=new ViewHolder();
    31. holder.item_icon=(ImageView) view.findViewById(R.id.item_icon);
    32. holder.item_title=(TextView) view.findViewById(R.id.item_title);
    33. holder.item_size=(TextView) view.findViewById(R.id.item_size);
    34. holder.item_bottom=(TextView) view.findViewById(R.id.item_bottom);
    35. holder.item_rating=(RatingBar) view.findViewById(R.id.item_rating);
    36. view.setTag(holder);
    37. }else{
    38. view=convertView;
    39. holder=(ViewHolder) view.getTag();
    40. }
    41. AppInfo appInfo=datas.get(position);
    42. holder.item_title.setText(appInfo.getName());// 设置应用程序的名字
    43. String size=Formatter.formatFileSize(UiUtils.getContext(), appInfo.getSize());
    44. holder.item_size.setText(size);
    45. holder.item_bottom.setText(appInfo.getDes());
    46. float stars = appInfo.getStars();
    47. holder.item_rating.setRating(stars); // 设置ratingBar的值
    48. String iconUrl = appInfo.getIconUrl(); //http://127.0.0.1:8090/image?name=app/com.youyuan.yyhl/icon.jpg
    49. // 显示图片的控件
    50. bitmapUtils.display(holder.item_icon, HttpHelper.URL+"image?name="+iconUrl);
    51. return view;
    52. }
    53. @Override
    54. public Object getItem(int position) {
    55. return datas.get(position);
    56. }
    57. @Override
    58. public long getItemId(int position) {
    59. return position;
    60. }
    61. }
    62. static class ViewHolder{
    63. ImageView item_icon;
    64. TextView item_title,item_size,item_bottom;
    65. RatingBar item_rating;
    66. }
    67. //检测数据
    68. public LoadResult load() {
    69. HomeProtocol protocol=new HomeProtocol();
    70. datas = protocol.load(0);
    71. return checkData(datas);
    72. }
    73. }





  • 相关阅读:
    一.在Linux中for和cat遍历文件内容出现no space
    六.安装jdk(基于Centos7安装)
    五·管理mysql
    四·安装mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz(基于Centos7源码安装)
    ArcGIS api for javascript——图形-增加图形到地图
    ArcGIS api for javascript——图层-创建定制的切片图层类型的图层
    ArcGIS api for javascript——图层-创建WMS图层类型的图层
    ArcGIS api for javascript——地图配置-定制缩放动画,定制缩放框
    ArcGIS api for javascript——地图配置-定制缩放动画
    ArcGIS api for javascript——地图配置-滑动器的刻度线、方向、大小的改变
  • 原文地址:https://www.cnblogs.com/sixrain/p/4969226.html
Copyright © 2020-2023  润新知