提供将一个Activity转化为View显示出来
2011-06-19 16:27
525 查看
最近看到好多opengl牛人写了些立方体,卷页之类的华丽的代码,这些立体面上都是些图片之类的ImageView的组件,许多人问能不能将一些Activity显示到上面。
最近我在看TabActivity的时候,发现这是可以实现的。
public View activityToView(Context parent,Intent intent){
LocalActivityManager mLocalActivityManager = new LocalActivityManager(parent,true);
final Window w = mLocalActivityManager.startActivity(
"TagName", intent);
final View wd = w != null ? w.getDecorView() : null;
if (wd != null) {
wd .setVisibility(View.VISIBLE);
wd .setFocusableInTouchMode(true);
((ViewGroup) wd ).setDescendantFocusability(
FOCUS_AFTER_DESCENDANTS);
}
return wd ;
}
大家知道,tabactivity既可以加载普通的layout布局文件,view组件,还有Intent(指定的activity),看下通讯录的一段代码:
Intent intent = new Intent("com.android.phone.action.RECENT_CALLS");
intent.setClass(this, RecentCallsListActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("call_log")
.setIndicator(getString(R.string.recentCallsIconLabel),
getResources().getDrawable(R.drawable.ic_tab_recent))
.setContent(intent));
setContent()方法其实是得到一个new IntentContentStrategy(mTag, intent)的实例。
当当前的Intent的tab获得焦点的时候,TabHost会调用IntentContentStrategy的getContentView()方法,将要显示的activit转化为view显示在Tabweight的下面。
getContentView()的实现方法就类似于前面说的activityToView()方法。具体的大家可以去看TabHost的源码。
最近我在看TabActivity的时候,发现这是可以实现的。
public View activityToView(Context parent,Intent intent){
LocalActivityManager mLocalActivityManager = new LocalActivityManager(parent,true);
final Window w = mLocalActivityManager.startActivity(
"TagName", intent);
final View wd = w != null ? w.getDecorView() : null;
if (wd != null) {
wd .setVisibility(View.VISIBLE);
wd .setFocusableInTouchMode(true);
((ViewGroup) wd ).setDescendantFocusability(
FOCUS_AFTER_DESCENDANTS);
}
return wd ;
}
大家知道,tabactivity既可以加载普通的layout布局文件,view组件,还有Intent(指定的activity),看下通讯录的一段代码:
Intent intent = new Intent("com.android.phone.action.RECENT_CALLS");
intent.setClass(this, RecentCallsListActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("call_log")
.setIndicator(getString(R.string.recentCallsIconLabel),
getResources().getDrawable(R.drawable.ic_tab_recent))
.setContent(intent));
setContent()方法其实是得到一个new IntentContentStrategy(mTag, intent)的实例。
当当前的Intent的tab获得焦点的时候,TabHost会调用IntentContentStrategy的getContentView()方法,将要显示的activit转化为view显示在Tabweight的下面。
getContentView()的实现方法就类似于前面说的activityToView()方法。具体的大家可以去看TabHost的源码。
相关文章推荐
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 如何实现点击GridView中一个图片后,如何传递至一个新的Activity中的imageview里面显示?
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 高德地图MapView和其他SurfaceView在同一个Activity中重叠显示透明问题
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 如何使ViewPager和其它元素显示在一个Activity里面
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 将一个Activity分割成两部分,每个部分显示一个自定义View
- 从网上获取一个网页,在一个TextView中将其源代码显示出来
- 从网上获取一个网页,在一个TextView中将其源代码显示出来
- SimpleTouchImageView一个支持缩放平移及多点缩放的显示图片的Activity
- Android在打开一个新的Activity浏览大图时使用ImageView/PhotoView的时候图片显示在屏幕上部的问题
- 怎么把两个布局加入到一个Activity里显示出来?
- android开发之获取一个页面的源代码用一个textview显示出来
- 高德地图MapView和其他SurfaceView在同一个Activity中重叠显示透明问题
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成
- 我想把一个外部程序的Activity在当前程序的View中显示,但是结果是不行的程序意外退出,那位高手知道该作么做?
- 一个app,多个入口图标,activity-alias实现多程序入口并显示指定view完成