package com.gitonway.fineday.widget; import java.util.ArrayList; import java.util.List; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EViewGroup; import org.androidannotations.annotations.ViewById; import android.content.Context; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.gitonway.fineday.R; import com.gitonway.fineday.activity.*; import com.gitonway.fineday.domain.model.CurrentWeaterModel; import com.gitonway.fineday.domain.model.WeaterModel; import com.gitonway.fineday.domain.model.WeaterObjModel; import com.gitonway.fineday.utils.ImageUtils; import com.gitonway.fineday.utils.TimeUtils; import com.gitonway.fineday.widget.shimmer.Shimmer; import com.gitonway.fineday.widget.shimmer.ShimmerTextView; import com.nineoldandroids.animation.ObjectAnimator; import com.nineoldandroids.view.ViewPropertyAnimator; @EViewGroup(R.layout.viewpager_today_info) public class TodayWeaterInfo extends LinearLayout { public static final int REQUEST_CODE=1000; @ViewById(R.id.layout_week_) LinearLayout mLayoutWeek; @ViewById(R.id.layout_another_info_) LinearLayout mLayoutInfo; /** * 今天周几 */ @ViewById(R.id.today_week) TextView mTextViewWeek; /** * 今天的时间(MM/dd) */ @ViewById(R.id.today_date) TextView mTextViewDate; /** * 地区 */ @ViewById(R.id.area) ShimmerTextView mTextViewArea; /** * 今天天气图标 */ @ViewById(R.id.today_weater_icon) ImageView mImageViewIcon; /** * 今天空气湿度 */ @ViewById(R.id.temph) TextView mTextViewTempH; /** * 风力风向 */ @ViewById(R.id.wind) TextView mTextViewWind; /** * 空气质量 */ @ViewById(R.id.air) TextView mTextViewAir; /** * 当前温度 */ @ViewById(R.id.currentweater) TextView mTextViewCurrentWeater; /** * 今天空气质量 */ @ViewById(R.id.templ) TextView mTextViewTempL; /** * 天气情况 */ @ViewById(R.id.weaterinfo) TextView mTextViewWeaterInfo; private Shimmer shimmer; private int layoutX; public TodayWeaterInfo(Context context) { super(context); } public void bind(WeaterModel allmodel) { CurrentWeaterModel cModel = allmodel.getCurrentWeater(); List<WeaterObjModel> mList = new ArrayList<WeaterObjModel>(); mList = allmodel.getWeather(); shimmer = new Shimmer(); shimmer.start(mTextViewArea); mTextViewWeek.setText(TimeUtils.getWeek(mList.get(0).getDate())); mTextViewDate.setText(TimeUtils.getMonthDay(allmodel.getTime())); mTextViewArea.setText(allmodel.getArea().get(2).getAreaname()); mImageViewIcon .setImageResource(ImageUtils.getIcon(cModel.getImg())); mTextViewTempH.setText(mList.get(0).getTempH()); mTextViewTempL.setText(mList.get(0).getTempL()); mTextViewWind.setText(cModel.getDirect() + " " + cModel.getPower()); mTextViewAir.setText(setWeaterAQI(allmodel.getPm25())); mTextViewCurrentWeater.setText(cModel.getTemperature() + "°"); mTextViewWeaterInfo.setText(cModel.getInfo()); // setWeaterAQI(allmodel.getPm25()); } /** * 设置空气质量 */ private String setWeaterAQI(int aqi) { String s = ""; if (aqi >= 0 && aqi <= 50) { s = "空气优"; } else if (aqi > 50 && aqi <= 100) { s = "空气良"; } else if (aqi > 100 && aqi <= 150) { s = "轻度污染"; } else if (aqi > 150 && aqi <= 200) { s = "中度污染"; } else if (aqi > 200 && aqi <= 300) { s = "重度污染"; } else if (aqi > 300) { s = "严重污染"; } // mTextViewAir.setText(s); return s; } /** * 根据天气情况设置字体颜色 */ private void setWeaterTextColor(String iconnum) { int num = Integer.parseInt(iconnum); if (num >= 0 && num < 2) mTextViewWeaterInfo.setTextColor(getResources().getColor( R.color.comm_1)); else { mTextViewWeaterInfo.setTextColor(getResources().getColor( R.color.comm_2)); } } @Click void areaClicked(){ CitySelectionActivity_.intent(getContext()).startForResult(REQUEST_CODE); } @Click void currentweaterClicked(){ float alpha=mLayoutInfo.getAlpha(); layoutX=mLayoutInfo.getWidth(); //添加当前温度的点击效果 ObjectAnimator.ofFloat(mTextViewCurrentWeater, "alpha", 1, 0.2f, 1).setDuration(2000).start(); //控制风力风向,空气质量等信息的显示与隐藏 if (alpha==0.0f) { ViewPropertyAnimator.animate(mLayoutInfo).alpha(1).x(0).setDuration(1500); }else if (alpha==1.0) { ViewPropertyAnimator.animate(mLayoutInfo).alpha(0).x(layoutX).setDuration(1500); } } }