package com.tiger.quicknews.wedget; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.HorizontalScrollView; import android.widget.ImageView; public class ColumnHorizontalScrollView extends HorizontalScrollView { /** �������岼�� */ private View ll_content; /** ���������Ŀѡ�񲼾� */ private View ll_more; /** �����϶������� */ private View rl_column; /** ����ӰͼƬ */ private ImageView leftImage; /** ����ӰͼƬ */ private ImageView rightImage; /** ��Ļ��� */ private int mScreenWitdh = 0; /** ����Ļactivity */ private Activity activity; public ColumnHorizontalScrollView(Context context) { super(context); } public ColumnHorizontalScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public ColumnHorizontalScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } /** * ���϶���ʱ��ִ�� */ @Override protected void onScrollChanged(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { super.onScrollChanged(paramInt1, paramInt2, paramInt3, paramInt4); shade_ShowOrHide(); if (!activity.isFinishing() && ll_content != null && leftImage != null && rightImage != null && ll_more != null && rl_column != null) { if (ll_content.getWidth() <= mScreenWitdh) { leftImage.setVisibility(View.GONE); rightImage.setVisibility(View.GONE); } } else { return; } if (paramInt1 == 0) { leftImage.setVisibility(View.GONE); rightImage.setVisibility(View.VISIBLE); return; } if (ll_content.getWidth() - paramInt1 + ll_more.getWidth() + rl_column.getLeft() == mScreenWitdh) { leftImage.setVisibility(View.VISIBLE); rightImage.setVisibility(View.GONE); return; } leftImage.setVisibility(View.VISIBLE); rightImage.setVisibility(View.VISIBLE); } /** * ���븸�಼���е���Դ�ļ� */ public void setParam(Activity activity, int mScreenWitdh, View paramView1, ImageView paramView2, ImageView paramView3, View paramView4, View paramView5) { this.activity = activity; this.mScreenWitdh = mScreenWitdh; ll_content = paramView1; leftImage = paramView2; rightImage = paramView3; ll_more = paramView4; rl_column = paramView5; } /** * �ж�������Ӱ����ʾ����Ч�� */ public void shade_ShowOrHide() { if (!activity.isFinishing() && ll_content != null) { measure(0, 0); // ���������С����Ļ��ȵĻ�����������Ӱ������ if (mScreenWitdh >= getMeasuredWidth()) { leftImage.setVisibility(View.GONE); rightImage.setVisibility(View.GONE); } } else { return; } // ��������������ʱ�������Ӱ���أ��ұ���ʾ if (getLeft() == 0) { leftImage.setVisibility(View.GONE); rightImage.setVisibility(View.VISIBLE); return; } // ������������ұ�ʱ�������Ӱ��ʾ���ұ����� if (getRight() == getMeasuredWidth() - mScreenWitdh) { leftImage.setVisibility(View.VISIBLE); rightImage.setVisibility(View.GONE); return; } // ����˵�����м�λ�ã�������Ӱ����ʾ leftImage.setVisibility(View.VISIBLE); rightImage.setVisibility(View.VISIBLE); } }