package com.video.ui.view.user; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; import com.video.ui.R; /** *@author tangfuling * */ public class MyVideoView extends FrameLayout { private Context mContext; private View mContentView; //UI private TextView mVideoViewItem; private TextView mVideoViewName; private View mClickView; //data private MyVideoFragment.MyVideoItem mMyVideoItem; private OnMyVideoClickListener mOnMyVideoClickListener; public MyVideoView(Context context) { this(context, null); } public MyVideoView(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; init(); } public void setItem(MyVideoFragment.MyVideoItem myVideoItem) { this.mMyVideoItem = myVideoItem; refresh(); } public void setOnMyVideoClickListener(OnMyVideoClickListener listener) { this.mOnMyVideoClickListener = listener; } //init private void init() { mContentView = View.inflate(mContext, R.layout.my_video_view, null); int width = mContext.getResources().getDimensionPixelSize(R.dimen.my_video_view_width); int height = mContext.getResources().getDimensionPixelSize(R.dimen.my_video_view_height); LayoutParams params = new LayoutParams(width, height); addView(mContentView, params); mClickView = mContentView.findViewById(R.id.my_video_click); mClickView.setOnClickListener(mOnClickListener); mVideoViewItem = (TextView) mContentView.findViewById(R.id.my_video_view_item); mVideoViewName = (TextView) mContentView.findViewById(R.id.my_video_view_name); } //packaged method private void refresh() { if(mMyVideoItem == null) { this.setVisibility(View.INVISIBLE); } else { this.setVisibility(View.VISIBLE); Drawable drawableTop = mContext.getResources().getDrawable(mMyVideoItem.itemIconResId); mVideoViewItem.setCompoundDrawablesWithIntrinsicBounds(null, drawableTop, null, null); mVideoViewItem.setText(mMyVideoItem.mDesc); mVideoViewName.setText(mMyVideoItem.itemName); } } //UI callback private OnClickListener mOnClickListener = new OnClickListener() { @Override public void onClick(View v) { if(mOnMyVideoClickListener != null) { mOnMyVideoClickListener.onMyVideoClick(MyVideoView.this, mMyVideoItem); } } }; public interface OnMyVideoClickListener { public void onMyVideoClick(MyVideoView view, MyVideoFragment.MyVideoItem myVideoItem); } }