0

我想要实现的是:

在此处输入图像描述

我想让屏幕的特定部分成为我的SurfaceView. 我会将它SurfaceView用于一些动画。Views但我想在我TextView的.RadioButtonGroupSurfaceView

所以我的问题是,这可能吗?我正在寻找有关“动画精灵”的示例 android 源代码,但我找不到任何同时包含TextViewsSurfaceView. 都在延伸SurfaceView。如果这是可能的,我该怎么做?你有我可以尝试的示例源代码吗?

4

2 回答 2

0

这绝对是可能的,但您可能需要提供更多信息。如果您想在 textview 旁边运行一些简单的动画,那么您甚至不需要表面视图。只需创建一个图像视图并在其上运行动画(这是我为该主题创建的教程)

TextView 及其亲属不从 Surfaceview 派生,它们从 View 类派生。再一次,如果您想执行简单的动画,我认为您不需要表面视图。如果您想做更多动态复杂的事情,那么在我的开发博客上还有一个关于如何将 SurfaceView 用于游戏的教程。如果这更符合您的喜好,那么您可以创建一个自定义表面视图,然后将其与您想要的尺寸尺寸关联到您的布局中。

于 2012-05-09T04:47:55.010 回答
0

试试这个我没有扩展surfaceview。

    public class Preview_can_work extends Activity {
        private SurfaceView surface_view;  
        SurfaceHolder.Callback sh_ob = null;
        SurfaceHolder surface_holder        = null;
        SurfaceHolder.Callback sh_callback  = null;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            getWindow().setFormat(PixelFormat.TRANSLUCENT);

            surface_view = new SurfaceView(getApplicationContext());
            addContentView(surface_view, new LayoutParams(50, 50));

            if (surface_holder == null) {
                surface_holder = surface_view.getHolder();
            }

            sh_callback = my_callback();  // CREATING CALLBACK FOR YOUR SURFACE.
            surface_holder.addCallback(sh_callback);
        }

        // THIS FUNCTION RETURNS CALLBACK OBJECT FOR SURFACEVIEW.
            SurfaceHolder.Callback my_callback() {      
                SurfaceHolder.Callback ob1 = new SurfaceHolder.Callback() {

                    @Override
                    public void surfaceDestroyed(SurfaceHolder holder) {
                    }

                    @Override
                    public void surfaceCreated(SurfaceHolder holder) {
                    }

                    @Override
                    public void surfaceChanged(SurfaceHolder holder, int format, int width,
                            int height) {
                    }
                };
                return ob1;
        }

    }

现在你可以简单地在你的布局上添加任何文本视图或按钮,它应该可以工作。

注意:- 我正在动态创建表面。在您的情况下,您可以做的是您可以在 xml 文件中创建所有内容。而不是创建surfaceview 创建视频视图。

SurfaceView surface_view = (SurfaceView) findViewById(R.id.video_view_id);

如果您从布局中按 id 获取视图,那么您必须从代码中删除一些行。哪个是:

            surface_view = new SurfaceView(getApplicationContext());
            addContentView(surface_view, new LayoutParams(50, 50));

希望它会帮助你...

于 2012-05-09T04:50:02.600 回答