• Android使用Dribble Api


    使用Dribble提供的Api获取上面的设计分享

    • 使用了Material Design、SceneTransitionAnimation
    • 使用了Volley Gson

    1. 申请Dribble开发者应用

    https://dribbble.com/account/applications/new

    申请成功之后,就会生成

    • Client ID
    • Client Secret
    • Client Access Token

    2. 使用Dribble的Api

    还可加page参数获取分页数据

    构建类似这样的数据

    public class DribbleShot{
        @SerializedName("animated")
        public Boolean mAnimated;
        @SerializedName("attachments_count")
        public Long mAttachmentsCount;
        @SerializedName("attachments_url")
        public String mAttachmentsUrl;
        @SerializedName("buckets_count")
        public Long mBucketsCount;
        @SerializedName("buckets_url")
        public String mBucketsUrl;
        @SerializedName("comments_count")
        public Long mCommentsCount;
        @SerializedName("comments_url")
        public String mCommentsUrl;
        @SerializedName("created_at")
        public String mCreatedAt;
        @SerializedName("description")
        public String mDescription;
        @SerializedName("height")
        public Long mHeight;
        @SerializedName("html_url")
        public String mHtmlUrl;
        @SerializedName("id")
        public Long mId;
        @SerializedName("images")
        public DribbleShotImages mDribbleShotImages;
        @SerializedName("likes_count")
        public Long mLikesCount;
        @SerializedName("likes_url")
        public String mLikesUrl;
        @SerializedName("projects_url")
        public String mProjectsUrl;
        @SerializedName("rebounds_count")
        public Long mReboundsCount;
        @SerializedName("rebounds_url")
        public String mReboundsUrl;
        @SerializedName("tags")
        public List<String> mTags;
        @SerializedName("team")
        public DribbleShotTeam mDribbleShotTeam;
        @SerializedName("title")
        public String mTitle;
        @SerializedName("updated_at")
        public String mUpdatedAt;
        @SerializedName("user")
        public DribbleShotUser mDribbleShotUser;
        @SerializedName("views_count")
        public Long mViewsCount;
        @SerializedName("width")
        public Long mWidth;
    }
    

    使用Volley获取数据,Gson解析

    private void getData() {
            final String shotUrl = "https://api.dribbble.com/v1/shots?access_token=" + DRIBBLE_Token;
            StringRequest request = new StringRequest(Request.Method.GET, shotUrl, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Gson gson = new Gson();
                    Type type = new TypeToken<ArrayList<DribbleShot>>() {
                    }.getType();
                    dribbleShots = gson.fromJson(response, type);
                    //填充到list
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
            RequestQueue queue = Volley.newRequestQueue(context);
            queue.add(request);
       }
    

    3. Activity View转场动画

    1. 在跳转的Activity使用ActivityOptionsCompat.makeSceneTransitionAnimation()

      Intent intent = new Intent(context, ShotItemActivity.class);
      ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(context, view, "TRASATION_ANIMATION");
                      ActivityCompat.startActivity(context, itent, optionsCompat.toBundle());
      
      • view 为发生转场动画的控件
    2. 在目标Activity使用ViewCompat.setTransitionName()设定转场动画的接收控件

      ViewCompat.setTransitionName(imageView, "TRASATION_ANIMATION");
      
      • 注意制定的TRANATION_ANIMATION需要保持一致。
  • 相关阅读:
    Day22:异常处理、socke基于TCP协议编程
    Day21:面向对象的软件开发、反射、对象的内置方法
    Day20:绑定方法与非绑定办法、多态和多态性
    Day19:继承实现的原理、子类中调用父类的方法、封装
    Day18:类的抽象、类的组合应用
    Day17:类的继承、派生、组合和接口
    Day16:面向对象编程——类和对象
    数据结构
    python爬虫篇之 性能相关
    scrapy-redis
  • 原文地址:https://www.cnblogs.com/jiy-for-you/p/6906146.html
Copyright © 2020-2023  润新知