依赖
compile 'com.youth.banner:banner:1.1.5'
compile 'com.google.code.gson:gson:2.8.2'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
compile 'com.squareup.okio:okio:1.11.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.4-7'
implementation 'com.android.support:recyclerview-v7:26.1.0'
//Okhttp3Util封装参考http://blog.csdn.net/wei844067872/article/details/78778372无拦截器
//Okhttp3Util封装加拦截器参考http://blog.csdn.net/wei844067872/article/details/79059394
//属性动画
public class MainActivity extends AppCompatActivity {
private ImageView image_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image_btn = findViewById(R.id.image_btn);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int heightPixels = displayMetrics.heightPixels;
ObjectAnimator y = ObjectAnimator.ofFloat(image_btn, "Y",(heightPixels-image_btn.getHeight())/2);
ObjectAnimator rotation = ObjectAnimator.ofFloat(image_btn, "rotation", 0f, 360f);
ObjectAnimator alpha = ObjectAnimator.ofFloat(image_btn, "alpha", 0f, 1f);
ObjectAnimator y1 = ObjectAnimator.ofFloat(image_btn,"scaleY", 2f, 1f);
ObjectAnimator x = ObjectAnimator.ofFloat(image_btn, "scaleX", 2f, 1f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(y).with(rotation).with(alpha).with(y1).with(x);
animatorSet.setDuration(3000);
animatorSet.start();
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationCancel(Animator animation) {
super.onAnimationCancel(animation);
}
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
Intent intent = new Intent(MainActivity.this, MyShangPingXiangQingActivity.class);
startActivity(intent);
finish();
}
@Override
public void onAnimationRepeat(Animator animation) {
super.onAnimationRepeat(animation);
}
@Override
public void onAnimationStart(Animator animation) {
super.onAnimationStart(animation);
}
});
}
}
//属性动画布局是一张图片
<ImageView
android:id="@+id/image_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@mipmap/ic_launcher_round"/>
//view层
public interface MainXiangQing {
void getXiangQingBean(MyXiangQingBean myXiangQingBean);
}
//商品详情
public class MyShangPingXiangQingActivity extends AppCompatActivity implements MainXiangQing, View.OnClickListener,MainMyJiaRu {
private ImageView image_fanhui;
private Banner banner;
private TextView text_title;
private TextView text_yuanjia;
private TextView text_xianjia;
private Button btn_gouwuche;
private Button btn_jiaru;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_shang_ping_xiang_qing);
image_fanhui = findViewById(R.id.image_fanhui);
banner = findViewById(R.id.Mybanner);
text_title = findViewById(R.id.text_title);
text_yuanjia = findViewById(R.id.text_yuanjia);
text_xianjia = findViewById(R.id.text_xianjia);
btn_gouwuche = findViewById(R.id.btn_gouwuche);
btn_jiaru = findViewById(R.id.btn_jiaru);
PresenterXiangQing presenterXiangQing = new PresenterXiangQing(this);
presenterXiangQing.getXiangQingUrl(ApiUrl.xiangqing);
btn_gouwuche.setOnClickListener(this);
btn_jiaru.setOnClickListener(this);
}
@Override
public void getXiangQingBean(final MyXiangQingBean myXiangQingBean) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ArrayList<String> list = new ArrayList<>();
MyXiangQingBean.DataBean data = myXiangQingBean.getData();
String images = data.getImages();
String[] split = images.split("\\|");
for (int i=0;i<split.length;i++){
list.add(split[i]);
}
banner.setBannerStyle(Banner.AUTOFILL_TYPE_LIST);//设置图片的样式
banner.setIndicatorGravity(Banner.CENTER); //设置指示器位置
banner.setDelayTime(2000);//间隔时间
banner.isAutoPlay(true);//设置自动轮播
banner.setImages(list);
text_title.setText(data.getTitle());
text_yuanjia.setText("原价:"+data.getPrice());
text_xianjia.setText("优惠价:"+data.getBargainPrice());
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_gouwuche:
Intent intent = new Intent(MyShangPingXiangQingActivity.this, MyGouWuCheActivity.class);
startActivity(intent);
break;
case R.id.btn_jiaru:
PresenterJiaRu presenterJiaRu = new PresenterJiaRu(this);
presenterJiaRu.getJiaRuUrl(ApiUrl.jiaru);
break;
}
}
@Override
public void getJiaRuBean(final MyJiaRuBean myJiaRuBean) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (myJiaRuBean!=null){
// Log.d("++++++++++++",myJiaRuBean.getMsg());
String code = myJiaRuBean.getCode();
if (code.equals("0")){
Toast.makeText(MyShangPingXiangQingActivity.this,myJiaRuBean.getMsg(),Toast.LENGTH_LONG).show();
}else {
Toast.makeText(MyShangPingXiangQingActivity.this,myJiaRuBean.getMsg(),Toast.LENGTH_LONG).show();
}
}
}
});
}
}
//presenter层 接口
public interface PresenterXiangQingPort {
void getXiangQingBean(MyXiangQingBean myXiangQingBean);
}
/* presenter层实体类 这里方法报错别管先把model层粘上,如果还报错再改 */
public class PresenterXiangQing implements PresenterXiangQingPort{
private MainXiangQing mainXiangQing;
private final ModelXiangQing modelXiangQing;
public PresenterXiangQing(MainXiangQing mainXiangQing) {
modelXiangQing = new ModelXiangQing(this);
this.mainXiangQing = mainXiangQing;
}
public void getXiangQingUrl(String xiangqing) {
modelXiangQing.getXiangQingUrl(xiangqing);
}
@Override
public void getXiangQingBean(MyXiangQingBean myXiangQingBean) {
mainXiangQing.getXiangQingBean(myXiangQingBean);
}
}
//model层
public class ModelXiangQing {
private PresenterXiangQing presenterXiangQing;
public ModelXiangQing(PresenterXiangQing presenterXiangQing) {
this.presenterXiangQing = presenterXiangQing;
}
public void getXiangQingUrl(String xiangqing) {
Map<String, String> params=new HashMap<>();
params.put("pid","56");
OkHttp3Util.doPost(xiangqing, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()){
String json = response.body().string();
MyXiangQingBean myXiangQingBean = new Gson().fromJson(json, MyXiangQingBean.class);
presenterXiangQing.getXiangQingBean(myXiangQingBean);
}
}
});
}
}
//购物车地址参考http://blog.csdn.net/wei844067872/article/details/79083627