`
wen742538485
  • 浏览: 238939 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android 将一个Activity转化为View显示出来

阅读更多
最近看到好多opengl牛人写了些立方体,卷页之类的华丽的代码,这些立体面上都是些图片之类的ImageView的组件,许多人问能不能将一些Activity显示到上面。
    最近我在看TabActivity的时候,发现这是可以实现的。

Java代码 
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),看下通讯录的一段代码:

Java代码 
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的源码。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/csuhanyong/archive/2011/06/19/6554799.aspx
===================================
我在使用这个方法时遇到了一点问题
我在一个普通的activity中使用这个方法 想把另一个activity转换成view显示
但是运行出错:Activities can't be added until the containing group has been created.
后来经查找在这里解决了问题:http://topic.csdn.net/u/20110821/22/29c9a9f8-f5ae-4a3d-a2de-ae6af955e05d.html
虽然问题解决了 但是还不明白原因。。
分享到:
评论

相关推荐

    android一个Activity里面多个listview

    本篇将深入探讨如何在同一个Android Activity中实现多个ListView的集成和交互。 首先,我们需要理解ListView的基本原理。ListView是Android提供的一种可滚动视图,用于显示一列可滚动的数据项。它通过Adapter(如...

    Activity界面的转化

    在Android应用开发中,Activity是Android系统中的一个核心组件,它是用户与应用程序交互的主要界面。Activity界面的转化涉及到了Android的生命周期、Intent机制、启动模式、任务栈管理等多个关键知识点,下面将对...

    android左右滑动切换activity

    4. **Intent和Activity栈**:在实现滑动切换Activity的方式中,每次滑动可以启动一个新的Activity并将其压入栈顶,然后使用Back键可以按照栈的顺序回退到之前的Activity。但是这种方式可能导致内存占用过多,所以不...

    一个Activity中多个ListView的整体滑动

    ListView是一个可滚动的视图,用于显示一系列的数据项,通常与Adapter一起使用,Adapter负责将数据转化为ListView可显示的View。在Android中,我们通常创建一个继承自BaseAdapter的自定义适配器,重写其中的几个关键...

    Android Activity之间的转换 简单的小示例

    本教程将深入讲解如何在Android中进行Activity间的转换,并通过一个简单的小示例来演示具体实现。 首先,理解Activity的生命周期是至关重要的。Activity有多种状态,如运行(Running)、暂停(Paused)、停止...

    Android 实现适配器中的子控件与Activity通信

    Adapter是一个接口,它为不同的视图提供数据,并负责将数据转化为可显示的视图组件。在ListView中,每个列表项都是一个View,由Adapter负责创建和填充。当用户与这些子View交互时,如点击按钮或输入文本,我们通常...

    自定义PopWindow实现,所有view上层显示。希望对大家有帮助。

    在Android开发中,自定义PopWindow是一个非常实用的技术,它允许开发者创建自定义的弹出窗口,能够在所有视图之上显示,提供丰富的交互体验。本文将深入探讨如何实现这样一个功能,以及其背后的原理和注意事项。 ...

    基于android的listview实例,还有activity之间的跳转

    本教程将详细介绍如何在Android中创建一个基于ListView的实例,并实现Activity之间的跳转。 一、ListView的使用 1. **布局文件**: 首先,我们需要在XML布局文件中定义ListView。例如,在`food_listview.xml`中: ...

    android List View例子代码

    为了实现这一功能,我们需要创建一个适配器(Adapter),它是ListView和数据源之间的桥梁,负责将数据转化为ListView中的一个个视图。 适配器通常继承自BaseAdapter或ArrayAdapter。BaseAdapter是最基础的适配器,...

    Android TabHost List View 使用的一个小例子

    它允许你在同一个Activity中展示多个不同的Fragment或者View,每个标签代表一个不同的界面。TabHost包含两部分:TabWidget和FrameLayout。TabWidget用于显示各个标签,而FrameLayout则用于加载与每个标签关联的视图...

    android自定义接口,然后在activity中实现点击监听,调用getView解决滑动错位的问题

    在Android开发中,自定义接口并将其应用于Activity与Adapter之间的通信是常见的做法,尤其是在处理点击事件和解决滑动错位问题时。这篇文章将深入探讨如何通过这个方法来优化用户界面的交互体验。 首先,让我们理解...

    android gif图片循环显示

    本文将详细讲解如何实现一个可以循环显示10张GIF图片的功能,这对于初学者来说是一次很好的学习机会。 首先,我们需要理解GIF图片的特性。GIF是一种支持动画的图像格式,它通过存储一系列连续的帧来实现动态效果。...

    截取View转为图片

    在Android开发中,有时我们需要将一个View转换成图片进行保存或者分享,比如截图、制作预览图等。这个过程涉及到的主要知识点是View的绘制和Bitmap的处理。下面将详细讲解如何实现这一功能。 首先,我们要了解`View...

    android自定义view实现股票趋势图

    在Android开发中,自定义View是一种常见的需求,特别是在创建复杂用户界面或图形展示时,比如在本例中,我们需要实现一个股票趋势图。这个过程涉及到对Android视图系统、绘图机制以及数据处理的理解。 首先,自定义...

    安卓activity签字签名

    "安卓activity签字签名"这个话题涉及到在Android应用中实现一个功能,让用户能够在屏幕上签字并保存其签名,通常这会涉及到图像处理和文件存储。下面将详细讨论这个主题。 1. **Activity签名**: 在Android中,...

    Android中Listview分页显示

    ListView是Android提供的一个可滚动视图,用于展示多个同类型的项。每个项通常由一个布局文件(XML)定义,通过Adapter进行数据绑定。Adapter是连接ListView与数据源的桥梁,负责将数据转化为列表项视图。 二、分页...

    android 9宫格显示

    GridView的工作原理是通过Adapter类来绑定数据源,它会自动将数据转化为View并填充到GridView的每一个单元格中。Adapter有多种类型,如BaseAdapter、SimpleAdapter和CursorAdapter等,其中BaseAdapter是最基础的,...

    Android开发中如何使用;列表显示数据并进行调用

    例如,我们可以创建一个名为`activity_main.xml`的布局文件: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=...

    android listview显示数据库中内容

    Adapter负责将数据库中的数据转化为ListView可显示的View。在`getView()`方法中,根据数据项创建或复用一个View,并填充数据。 5. ListView配置: 在布局文件中添加ListView,并为它设置Adapter。在Activity或...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

Global site tag (gtag.js) - Google Analytics