最近看到身边有好多同学都在尝试写博客,感觉挺有意思的,所以......(省略一堆字)。好了,先看一下效果。
不得不说,看起来感觉很low,有没有。写这个之前,想了想思路,采用一个比较简单的方式展现一下,这个效果。
首先可以上面这层可以看成一个Activity,那么接下来的思路就是比较简单实现了,上面这层只需要透明显示就可以实现了。代码比较简单,直接看就好了,那么接下来看代码:
MainActivity里实现
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
overridePendingTransition(R.anim.fade, R.anim.hold);
Intent in=new Intent(MainActivity.this,MyTestlei.class);
startActivity(in);
}
}
另一个类里实现
public class MyTestlei extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
overridePendingTransition(R.anim.fade, R.anim.hold);
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//如果按下的是返回键,并且没有重复
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
finish();
overridePendingTransition(R.anim.fade, R.anim.hold);
return false;
}
return false;
}
}
记得最主要的是要在AndroidManifest.xml里的android:name=".MyTestlei"加上这行代码
android:theme="@android:style/Theme.Translucent"
这个主要是让界面主题样式透明化。
考虑到这是 Activity切换的原因,两个Activity切换会有明显的切换,相信不懂技术的用户也会发现到,因此,我在这里加上了界面显示和消失的动画,下面是动画配置文件:
fade.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="100" />
hold.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="0"
android:duration="100" />
用透明度展示一下,这样在效果上用户就不会那么明显的看出来了,好处是用一个Activity,可以进行很多的操作,很方便,但是在资源角度等其他角度就没那么必要了。当然大家也可以用dialog等其他方式来实现一下。有兴趣的也可以看一下我的下一篇用windowmanager来展示引导提示页。