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转场动画
在跳转的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 为发生转场动画的控件
在目标Activity使用
ViewCompat.setTransitionName()
设定转场动画的接收控件
相关推荐
染血白衣 2020-11-16
SAMXIE 2020-11-04
一个智障 2020-11-15
学习web前端 2020-11-09
yiranpiaoluo 2020-11-04
lxhuang 2020-11-03
88274956 2020-11-03
82387067 2020-11-03
huangliuyu00 2020-10-29
sichenglain 2020-10-27
Dayer 2020-10-27
小马的学习笔记 2020-10-23
liuweiITlove 2020-10-14
kjyiyi 2020-10-10
fanjunjaden 2020-10-09
zhyue 2020-09-28
huangliuyu00 2020-09-24
88397813 2020-09-23
jyj0 2020-09-21