Android 抽屉式Activity
2012-07-17 14:06:29 来源:WEB开发网核心提示:public class SettingActivity extendsActivity { private ImageView mCover; private ListView mList; private Animation mStartAnimation; private Animation mStopAnima
public class SettingActivity extends
Activity {
Activity {
private ImageView mCover;
private ListView mList;
private Animation mStartAnimation;
private Animation mStopAnimation;
private static final int DURATION_MS = 400;
private static Bitmap sCoverBitmap = null;
String loveyouString[] = new String[] {
"公子白工作室", "帅哥 帅哥 帅哥 帅哥",
"帅哥", "美女", "帅哥 帅哥 帅哥",
"帅哥 帅哥 帅哥 帅哥", "帅哥 帅哥 帅哥",
"地上的娃娃笑哈哈" };
private ListView mList;
private Animation mStartAnimation;
private Animation mStopAnimation;
private static final int DURATION_MS = 400;
private static Bitmap sCoverBitmap = null;
String loveyouString[] = new String[] {
"公子白工作室", "帅哥 帅哥 帅哥 帅哥",
"帅哥", "美女", "帅哥 帅哥 帅哥",
"帅哥 帅哥 帅哥 帅哥", "帅哥 帅哥 帅哥",
"地上的娃娃笑哈哈" };
// 2个步骤
// 1. activity-->other activity
// 2. anim
// 先切换到另一个activity
// 再获得之前activity屏幕的快照将它作为一个cover覆盖在下一个屏幕的上面,然后通过动画移动这个cover,让人感觉好像是前一个屏幕的移动。
// 1. activity-->other activity
// 2. anim
// 先切换到另一个activity
// 再获得之前activity屏幕的快照将它作为一个cover覆盖在下一个屏幕的上面,然后通过动画移动这个cover,让人感觉好像是前一个屏幕的移动。
public static void prepare(
Activity activity, int id) {
if (sCoverBitmap != null) {
sCoverBitmap.recycle();
}
// 用指定大小生成一张透明的32位位图,并用它构建一张canvas画布
sCoverBitmap = Bitmap
.createBitmap(
activity.findViewById(
id)
.getWidth(),
activity.findViewById(
id)
.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(
sCoverBitmap);
// 将指定的view包括其子view渲染到这种画布上,在这就是上一个activity布局的一个快照,现在这个bitmap上就是上一个activity的快照
activity.findViewById(id).draw(
canvas);
}
Activity activity, int id) {
if (sCoverBitmap != null) {
sCoverBitmap.recycle();
}
// 用指定大小生成一张透明的32位位图,并用它构建一张canvas画布
sCoverBitmap = Bitmap
.createBitmap(
activity.findViewById(
id)
.getWidth(),
activity.findViewById(
id)
.getHeight(),
Config.ARGB_8888);
Canvas canvas = new Canvas(
sCoverBitmap);
// 将指定的view包括其子view渲染到这种画布上,在这就是上一个activity布局的一个快照,现在这个bitmap上就是上一个activity的快照
activity.findViewById(id).draw(
canvas);
}
@Override
public void onCreate(
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 绝对布局最上层覆盖了一个imageview
setContentView(R.layout.main);
initAnim();
mCover = (ImageView) findViewById(R.id.slidedout_cover);
mCover.setImageBitmap(sCoverBitmap);
mCover.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
close();
}
});
mList = (ListView) findViewById(R.id.list);
mList.setAdapter(new ArrayAdapter<String>(
SettingActivity.this,
android.R.layout.simple_list_item_1,
loveyouString));
mList.setOnItemClickListener(new OnItemClickListener() {
public void onCreate(
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 绝对布局最上层覆盖了一个imageview
setContentView(R.layout.main);
initAnim();
mCover = (ImageView) findViewById(R.id.slidedout_cover);
mCover.setImageBitmap(sCoverBitmap);
mCover.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
close();
}
});
mList = (ListView) findViewById(R.id.list);
mList.setAdapter(new ArrayAdapter<String>(
SettingActivity.this,
android.R.layout.simple_list_item_1,
loveyouString));
mList.setOnItemClickListener(new OnItemClickListener() {
更多精彩
赞助商链接