android屏幕适配

横竖屏切换展示不同XML:

res文件夹下,新建layout-land竖屏展示      layout-post 横屏展示


分辨率和横竖屏不同切换:

res文件夹下,新建layout-land-800*480 当屏幕分辨路和横屏的时候展示 如果没有相符那么找最接近的。


布局文件别名:

之前一直使用setContentView(R.layout.activity_main);这种参数布局,这次可以给activity_main起一个别名,方便调用,做法是新建values-800$480的XML文件,添加节点

<resources>
    <item name="main" type="layout">@layout/activity_h</item>
</resources>
名字是main  这样通过setContentView(R.layout.main)就可以调用了,这里可能有人不接,之前写的layout指的是文件夹layout 这次指的是文件,经过运行调试,发现layout文件夹下如果有一个main.xml  并且values-800*480有一个layout文件,可以理解为values-800*480优先级高。


获取手机屏幕的像素:

int width = getWindowManager().getDefaultDisplay().getWidth();
//获取TextView的布局参数信息对象
layoutparams=textview.getLayoutParams();
layoutparams.width=width/2;
//重新设置给Layout
textview.setLayoutParams(layoutparams);

从没有到有动画过程,并缓慢打开新的activity:

1.从没有到有动画过程,设置动画监听,当动画结束时跳转下一个窗体

		anim=AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale);
		//动画结束跳转到下一个界面
		anim.setAnimationListener(new AnimationListener() {
			@Override
			public void onAnimationStart(Animation animation) {
			}
			@Override
			public void onAnimationRepeat(Animation animation) {
			}
			//动画结束
			@Override
			public void onAnimationEnd(Animation animation) {
				Toast.makeText(MainActivity.this, "动画结束", 0).show();
				
				Intent intent = new Intent(MainActivity.this,NextActivity.class);
				
				startActivity(intent);
				//重写窗体切换的动画
				<span style="color:#ff0000;">overridePendingTransition(R.anim.trans_in, R.anim.trans_out);</span>
			}
		});
	}
scale.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0"
    android:toXScale="1"
    android:fromYScale="0"
    android:toYScale="1"
    android:duration="3000" 
    android:pivotX="50%"
    android:pivotY="50%"
    android:fillAfter="true">

</scale>

2.并缓慢打开新的activity代码:

trans_in.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%p"
    android:toXDelta="0"
    android:fromYDelta="0"
    android:toYDelta="0"
    android:duration="1000" >

</translate>

trans_out.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="-100%p"
    android:fromYDelta="0"
    android:toYDelta="0"
    android:duration="1000" >

</translate>

按钮倒计时完成之后才可以点击:

	class MyCountDownTimer extends CountDownTimer{
		//倒计时的总时长   参数2: 每隔多少秒倒计时一次
		public MyCountDownTimer(long millisInFuture, long countDownInterval) {
			super(millisInFuture, countDownInterval);
		}
		//距离结束的时长--毫秒值
		@Override
		public void onTick(long millisUntilFinished) {
			btn.setText(millisUntilFinished/1000+"");
		}
		//倒计时结束
		@Override
		public void onFinish() {
			//按钮可以响应事件
			btn.setEnabled(true);
			btn.setText("同意");
		}
	}

MainActivity.java

		btn.setEnabled(false);
		//参1:设置倒计时的总时间   参2:多少毫秒刷新 
 		timer=new MyCountDownTimer(30000,1000);
 		//该方法通常卸载Activity中onResume里
 		timer.start();




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值