package com.example.jingbin.cloudreader.ui.one;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.jingbin.cloudreader.R;
import com.example.jingbin.cloudreader.bean.moviechild.SubjectsBean;
import com.example.jingbin.cloudreader.databinding.ActivitySlideBinding;
import com.example.jingbin.cloudreader.utils.CommonUtils;
import com.example.jingbin.cloudreader.utils.DebugUtil;
import com.example.jingbin.cloudreader.view.CallBack_ScrollChanged;
import com.example.jingbin.cloudreader.view.test.StatusBarUtils;
public class SlideActivity extends AppCompatActivity {
private ActivitySlideBinding binding;
SubjectsBean subjectsBean;
int slidingDistance;
int currScrollY = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_slide);
binding = DataBindingUtil.setContentView(this, R.layout.activity_slide);
if (getIntent() != null) {
subjectsBean = (SubjectsBean) getIntent().getSerializableExtra("bean");
}
binding.tvTitle.setText("标题");
// 先设置状态栏透明
StatusBarUtils.setTranslucentImageHeader(this, 0, binding.titleToolBar);
// 高斯模糊
// ImgLoadUtil.displayGaussian(this, subjectsBean.getImages().getLarge(), binding.imgItemBg);
if (binding.imgItemBg != null) {
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) binding.imgItemBg.getLayoutParams();
layoutParams.setMargins(0, -getStatusBarHeight(this), 0, 0);
DebugUtil.error("getStatusBarHeight:"+getStatusBarHeight(this));
}
initNewSlidingParams();
binding.scrollView.setCallBack_scrollChanged(new CallBack_ScrollChanged() {
@Override
public void onScrollChanged(int scrolledY) {
if (scrolledY < 0) {
scrolledY = 0;
}
if (scrolledY < slidingDistance) {
// 状态栏渐变
StatusBarUtils.setTranslucentImageHeader(SlideActivity.this, scrolledY * 110 / slidingDistance, binding.titleToolBar);
// title渐变
binding.titleToolBar.setBackgroundColor(Color.argb(scrolledY * 110 / slidingDistance, 0x00, 0x00, 0x00));
// 背景图高度设置
binding.imgItemBg.setPadding(0, -scrolledY, 0, 0);
currScrollY = scrolledY;
} else {
StatusBarUtils.setTranslucentImageHeader(SlideActivity.this, 110, binding.titleToolBar);
binding.titleToolBar.setBackgroundColor(Color.argb(110, 0x00, 0x00, 0x00));
binding.imgItemBg.setPadding(0, -slidingDistance, 0, 0);
currScrollY = slidingDistance;
}
}
});
}
private void initNewSlidingParams() {
int headerSize = getResources().getDimensionPixelOffset(R.dimen.home_header_size);
int navBarHeight = getResources().getDimensionPixelOffset(R.dimen.nav_bar_height) + getStatusBarHeight(this);
// int tabStripHeight = getResources().getDimensionPixelOffset(R.dimen.tabstrip_height);
// slidingDistance = headerSize - navBarHeight - tabStripHeight;
slidingDistance = headerSize - navBarHeight;
Log.d("HomeFragment", "slidingDistance" + slidingDistance);
}
/**
* @param context activity
* @param positionData bean
* @param imageView imageView
*/
public static void start(Activity context, SubjectsBean positionData, ImageView imageView) {
Intent intent = new Intent(context, SlideActivity.class);
intent.putExtra("bean", positionData);
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(context,
imageView, CommonUtils.getString(R.string.transition_movie_img));//与xml文件对应
ActivityCompat.startActivity(context, intent, options.toBundle());
}
private static int getStatusBarHeight(Context context) {
// 获得状态栏高度
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
return context.getResources().getDimensionPixelSize(resourceId);
}
}