效果图
代码实现
package com.demo.ui.view
import android.annotation.TargetApi
import android.content.Context
import android.os.Build
import android.os.Handler
import android.support.v4.content.ContextCompat
import android.view.Gravity
import android.view.MotionEvent
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import com.demo.R
import com.demo.factory.Axis
import com.demo.utils.LogUtils
import java.util.ArrayList
import java.util.List
public class AirTemperatureView extends RelativeLayout{
private Context context
private TextView tv
private TextView tv_middle
// private TextView tv_middle_small
private RelativeLayout Auto_layout
private StringScrollPicker stringScrollPicker
private List<CharSequence> newList
private ImageView img
private ImageView img_left
private ImageView img_right
private int mPosition
private Handler handler = new Handler()
private Runnable delayRun = new Runnable() {
@Override
public void run() {
stringScrollPicker.setVisibility(INVISIBLE)
img.setBackgroundResource(R.drawable.air_temp_bg)
tv_middle.setText(newList.get(mPosition))
//tv.setText("电池剩余"+newList.get(mPosition)+"%提醒你")
tv_middle.setVisibility(VISIBLE)
img_right.setVisibility(VISIBLE)
img_left.setVisibility(VISIBLE)
if(mListener != null) {
mListener.setAirTemper(mPosition+18)
}
LogUtils.e("空调刷新===","温度")
}
}
public AirTemperatureView(Context context){
super(context)
this.context = context
init()
}
@TargetApi(Build.VERSION_CODES.M)
public void init(){
super.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(230)))
LinearLayout parent = new LinearLayout(context)
parent.setOrientation(LinearLayout.VERTICAL)
LayoutParams parent_Params = new LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(230))
super.addView(parent,parent_Params)
RelativeLayout tv_layout = new RelativeLayout(context)
LinearLayout.LayoutParams tv_layout_Params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(50))
parent.addView(tv_layout,tv_layout_Params)
tv = new TextView(context)
tv.setText("温度")
tv.setTextSize(Axis.scaleTextSize(36))
tv.setTextColor(ContextCompat.getColor(context, R.color.white_70_color))
LayoutParams tv_Params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
tv_Params.addRule(RelativeLayout.CENTER_IN_PARENT)
tv_layout.addView(tv,tv_Params)
Auto_layout = new RelativeLayout(context)
LinearLayout.LayoutParams Auto_layout_Params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, Axis.scaleX(150))
Auto_layout_Params.setMargins(0,Axis.scaleX(30),0,0)
parent.addView(Auto_layout,Auto_layout_Params)
img = new ImageView(context)
img.setId(R.id.EleRemindImage)
img.setBackgroundResource(R.drawable.air_temp_bg)
LayoutParams img_Params = new LayoutParams(Axis.scaleX(150), Axis.scaleX(150))
img_Params.addRule(RelativeLayout.CENTER_IN_PARENT)
Auto_layout.addView(img,img_Params)
img_left = new ImageView(context)
img_left.setBackgroundResource(R.drawable.battery_point)
LayoutParams img_left_Params = new LayoutParams(Axis.scaleX(14), Axis.scaleX(14))
img_left_Params.addRule(RelativeLayout.CENTER_VERTICAL)
img_left_Params.addRule(RelativeLayout.LEFT_OF,R.id.EleRemindImage)
img_left_Params.setMargins(0,0,Axis.scaleX(134),0)
Auto_layout.addView(img_left,img_left_Params)
img_right = new ImageView(context)
img_right.setBackgroundResource(R.drawable.battery_point)
LayoutParams img_right_Params = new LayoutParams(Axis.scaleX(14), Axis.scaleX(14))
img_right_Params.addRule(RelativeLayout.CENTER_VERTICAL)
img_right_Params.addRule(RelativeLayout.RIGHT_OF,R.id.EleRemindImage)
img_right_Params.setMargins(Axis.scaleX(134),0,0,0)
Auto_layout.addView(img_right,img_right_Params)
tv_middle = new TextView(context)
tv_middle.setTextSize(Axis.scaleTextSize(64))
tv_middle.setGravity(Gravity.CENTER)
tv_middle.setTextColor(0xFFFFFFFF)
LayoutParams tv_middle_Params = new LayoutParams(Axis.scaleX(150), Axis.scaleX(150))
tv_middle_Params.addRule(RelativeLayout.CENTER_IN_PARENT)
Auto_layout.addView(tv_middle,tv_middle_Params)
newList = new ArrayList<>()
newList.add("18")
newList.add("19")
newList.add("20")
newList.add("21")
newList.add("22")
newList.add("23")
newList.add("24")
newList.add("25")
newList.add("26")
newList.add("27")
newList.add("28")
newList.add("29")
newList.add("30")
newList.add("31")
newList.add("32")
tv_middle.setText(newList.get(0))
stringScrollPicker = new StringScrollPicker(context)
stringScrollPicker.setHorizontal(true)
stringScrollPicker.setVisibleItemCount(5)
stringScrollPicker.setCenterPosition(2)
stringScrollPicker.setIsCirculation(true)
stringScrollPicker.setCanTap(true)
stringScrollPicker.setDisallowInterceptTouch(true)
LayoutParams stringScrollPicker_Params = new LayoutParams(LayoutParams.MATCH_PARENT,Axis.scaleX(150))
Auto_layout.addView(stringScrollPicker,stringScrollPicker_Params)
stringScrollPicker.setData(newList)
stringScrollPicker.setOnSelectedListener(new ScrollPickerView.OnSelectedListener() {
@Override
public void onSelected(ScrollPickerView scrollPickerView, final int position) {
mPosition = position
handler.postDelayed(delayRun, 1500)
}
})
stringScrollPicker.setOnSelectedListener(new StringScrollPicker.OnDataSelectedListener() {
@Override
public void DataSelected(CharSequence data) {
//tv.setText("电池剩余"+data+"%提醒你")
}
})
stringScrollPicker.setSelectedPosition(0,false)
stringScrollPicker.setVisibility(INVISIBLE)
stringScrollPicker.setOnTouchListener(new OnTouchListener() {
@Override
publi