Android 模仿renren的左右划动菜单栏

    模仿renren的左右划动菜单栏,主要通过HorizontalScrollView来实现横向划动布局。通过判HorizontalScrollView对象的scrollX来控制左右两边的图片显隐。显示效果如图:
Android 模仿renren的左右划动菜单栏_第1张图片
 

具体Java代码如下:

/**
 * 
 * @author Shaodong Wu
 * 模仿renren的左右划动菜单栏
 */
public class JustTestActivity extends Activity {
	private static final String TAG="JustTestActivity";
    /** Called when the activity is first created. */
	 HorizontalScrollView scrollBar;
	 RadioGroup radioGroup;
	 int widthX;
	 ImageView arrowl;
	 ImageView arrowr;	
	 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        scrollBar=(HorizontalScrollView)this.findViewById(R.id.scroll_bar);
        radioGroup=(RadioGroup)this.findViewById(R.id.radioGroup);
        arrowl=(ImageView)this.findViewById(R.id.arrowl);
        arrowr=(ImageView)this.findViewById(R.id.arrowr);
        scrollBar.fling(1000);
        //通过判断目标的scrollX来控制左右两边的图片显隐
        scrollBar.setOnTouchListener(new OnTouchListener() {
        
			@Override
			public boolean onTouch(View view, MotionEvent event) {
				Log.i(TAG, "scrollX ---->"+scrollBar.getScrollX());
				Log.i(TAG, "windth ---->"+scrollBar.getWidth());
				LinearLayout linear=(LinearLayout)scrollBar.getChildAt(0);
				int radioWidth= linear.getChildAt(0).getWidth();
				Log.i(TAG, "radio width--->"+radioWidth); 
				if(scrollBar.getScrollX()<6){
					arrowl.setVisibility(View.GONE);
					
				}else if(scrollBar.getScrollX()+scrollBar.getWidth()>radioWidth-6){
					
					arrowr.setVisibility(View.GONE);
				}else{
					arrowr.setVisibility(View.VISIBLE);
					arrowl.setVisibility(View.VISIBLE);
				}
				return false;
			}
		});
        
        
    }
	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		
	}

}

 

Xml布局代码如下:


 

 
    
    
            
            
            
            
            
            
            
            
            
    
        
  






 

 

 

完整项目见附件。

你可能感兴趣的:(android,相关技术,移动开发,java)