超简单的仿Win8 风格布局,手指按下,背景图片(背景Linearlayout布局)缩小,手指松开恢复。

先上图吧看效果吧。

 看这效果,布局我就不用多说了吧。每块是个Linearlyout布局。

 现在想要这种效果。跟携程APP主页面差不多,不过可能实现方式不一样。

 点击每一块,手指按下时缩小, 手指松开恢复。

 利用ScalAnimation即可轻松实现。 也看到有大神重写了ImageView,比我这个高级多了。

 废话不多说,进入正题。


上图中每一块是个线性布局,然后里边是ImageView, TextView, 这都很清楚。

 给周游世界那块的LinearLayout起个id:  
 android:id="@+id/linear_one"

然后看MainActivity:

public class MainActivity extends Activity  implements OnClickListener{
    private RadioGroup group;
	private LinearLayout linear;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         linear=(LinearLayout) findViewById(R.id.linear_one);//初始化那块布局
        linear.setOnClickListener(this);//注册监听事件
        /**
         * 因为我们要判断手指按下 ,抬起的动作,故监听OnTouchListener
         */
        linear.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View arg0, MotionEvent arg1) {
				int action=arg1.getAction();
				if(action==MotionEvent.ACTION_DOWN){//按下时,缩小
					ScaleAnimation   sa=new  ScaleAnimation(1.0f, 0.85f,1.0f,0.85f,Animation.RELATIVE_TO_SELF
							,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
					sa.setDuration(100);//时间
					sa.setFillAfter(true);//此句尤其注意,不写的话,你按下,他动画过后马上恢复原样。这句代码就是阻止它恢复
			     	linear.startAnimation(sa);
				}else if(action==MotionEvent.ACTION_UP){//松开,放大恢复
					ScaleAnimation   sa=new  ScaleAnimation(0.85f, 1.0f,0.85f,1.0f,Animation.RELATIVE_TO_SELF
							,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
					sa.setDuration(100);//时间
					sa.setFillAfter(true);
			     	linear.startAnimation(sa);
		//	     	Intent intent=new Intent(MainActivity.this,A.class);   一般松开后就是在这写跳转Activity事件了。
			//     	  startActivity(intent);
				}
				return false;
			}
		});
  
}

	@Override
	public void onClick(View arg0) {
	}
}

至此,已经OK了,是不是很简单。



 


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值