Commit bf7cf456 by 段启岩

文章加载添加动画

parent e907fe53
......@@ -73,5 +73,5 @@ dependencies {
implementation 'com.facebook.fresco:animated-webp:0.12.0'
implementation 'com.facebook.fresco:webpsupport:0.12.0'
implementation 'org.jsoup:jsoup:1.13.1'
implementation 'me.samlss:broccoli:1.0.0'
}
package cn.yunliyunwai.beyondclouds.ui.blog;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.webkit.WebSettings;
import android.webkit.WebView;
......@@ -28,6 +30,9 @@ import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
import cn.yunliyunwai.beyondclouds.util.StatusBarUtils;
import cn.yunliyunwai.beyondclouds.viewmodel.BlogDetailViewModel;
import me.samlss.broccoli.Broccoli;
import me.samlss.broccoli.BroccoliGradientDrawable;
import me.samlss.broccoli.PlaceholderParameter;
public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, ActivityBlogDetailBinding> {
......@@ -46,6 +51,9 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi
@Inject
ViewModelProvider.Factory factory;
private Broccoli broccoli = new Broccoli();
@Override
protected void initInject() {
ContextUtils.getAppComponent(this).inject(this);
......@@ -70,6 +78,34 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi
blogId = getIntent().getStringExtra(ARG_BLOG_ID);
initEventListenersAndObservers();
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtTitle)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtUserNick)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtArticleCategory)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtArticleAbstract)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholders(binding.imageUserAvatar);
broccoli.show();
}
private void initEventListenersAndObservers() {
......@@ -99,6 +135,7 @@ public class BlogDetailActivity extends BaseActivity<BlogDetailViewModel, Activi
@Override
public void onChanged(BlogDetailViewModel.LoadState loadState) {
if (loadState.isLoadComplete()) {
broccoli.clearAllPlaceholders();
String contentHtml = viewModel.getBlog().getValue().getContentHtml();
contentHtml = HtmlUtils.enCode(contentHtml);
webView.evaluateJavascript("javascript:loadArticleContent('" + contentHtml + "')", null);
......
package cn.yunliyunwai.beyondclouds.ui.project;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.webkit.WebSettings;
import android.webkit.WebView;
......@@ -28,6 +30,9 @@ import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
import cn.yunliyunwai.beyondclouds.util.StatusBarUtils;
import cn.yunliyunwai.beyondclouds.viewmodel.ProjectDetailViewModel;
import me.samlss.broccoli.Broccoli;
import me.samlss.broccoli.BroccoliGradientDrawable;
import me.samlss.broccoli.PlaceholderParameter;
public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel, ActivityProjectDetailBinding> {
......@@ -46,6 +51,8 @@ public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel,
@Inject
ViewModelProvider.Factory factory;
private Broccoli broccoli = new Broccoli();
@Override
protected void initInject() {
ContextUtils.getAppComponent(this).inject(this);
......@@ -69,6 +76,34 @@ public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel,
StatusBarUtils.setWindowStatusBarColor(this, R.color.colorStatusBar);
blogId = getIntent().getStringExtra(ARG_PROJECT_ID);
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtTitle)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtUserNick)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtArticleCategory)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtArticleAbstract)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholders(binding.imageUserAvatar);
broccoli.show();
initEventListenersAndObservers();
}
......@@ -99,6 +134,7 @@ public class ProjectDetailActivity extends BaseActivity<ProjectDetailViewModel,
@Override
public void onChanged(ProjectDetailViewModel.LoadState loadState) {
if (loadState.isLoadComplete()) {
broccoli.clearAllPlaceholders();
String contentHtml = viewModel.getProject().getValue().getContentHtml();
contentHtml = HtmlUtils.enCode(contentHtml);
webView.evaluateJavascript("javascript:loadArticleContent('" + contentHtml + "')", null);
......
package cn.yunliyunwai.beyondclouds.ui.question;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.LinearInterpolator;
import android.webkit.WebSettings;
import android.webkit.WebView;
......@@ -28,6 +30,9 @@ import cn.yunliyunwai.beyondclouds.util.GlideRoundTransform;
import cn.yunliyunwai.beyondclouds.util.HtmlUtils;
import cn.yunliyunwai.beyondclouds.util.StatusBarUtils;
import cn.yunliyunwai.beyondclouds.viewmodel.QuestionDetailViewModel;
import me.samlss.broccoli.Broccoli;
import me.samlss.broccoli.BroccoliGradientDrawable;
import me.samlss.broccoli.PlaceholderParameter;
public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel, ActivityQuestionDetailBinding> {
......@@ -46,6 +51,8 @@ public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel
@Inject
ViewModelProvider.Factory factory;
private Broccoli broccoli = new Broccoli();
@Override
protected void initInject() {
ContextUtils.getAppComponent(this).inject(this);
......@@ -69,6 +76,27 @@ public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel
StatusBarUtils.setWindowStatusBarColor(this, R.color.colorStatusBar);
blogId = getIntent().getStringExtra(ARG_QUESTION_ID);
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtTitle)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtUserNick)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholder(new PlaceholderParameter.Builder()
.setView(binding.txtArticleCategory)
.setDrawable(new BroccoliGradientDrawable(Color.parseColor("#DDDDDD"),
Color.parseColor("#CCCCCC"), 0, 1000, new LinearInterpolator()))
.build());
broccoli.addPlaceholders(binding.imageUserAvatar);
broccoli.show();
initEventListenersAndObservers();
}
......@@ -99,6 +127,7 @@ public class QuestionDetailActivity extends BaseActivity<QuestionDetailViewModel
@Override
public void onChanged(QuestionDetailViewModel.LoadState loadState) {
if (loadState.isLoadComplete()) {
broccoli.clearAllPlaceholders();
String contentHtml = viewModel.getQuestion().getValue().getContentHtml();
contentHtml = HtmlUtils.enCode(contentHtml);
webView.evaluateJavascript("javascript:loadArticleContent('" + contentHtml + "')", null);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment