Questions tagged «surfaceview»

SurfaceView是Android平台上的小部件,提供了专用的绘图表面。

18
如何使用透明的ImageButton:Android
<ImageButton android:id="@+id/previous" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/media_skip_backward" android:background="@drawable/transparent"></ImageButton> 这就是我试图获得透明ImageButton以便将这些按钮放置在SurfaceView上的目的。但是,一旦在xml中包含透明行,Eclipse就会给我一个错误。 请帮忙。

10
扩展类时出现错误膨胀
我正在尝试创建一个GhostSurfaceCameraView扩展的自定义视图SurfaceView。这是我的班级定义文件 GhostSurfaceCameraView.java: public class GhostSurfaceCameraView extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; Camera mCamera; GhostSurfaceCameraView(Context context) { super(context); // Install a SurfaceHolder.Callback so we get notified when the // underlying surface is created and destroyed. mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { // The Surface has …
188 java  android  xml  class  surfaceview 

11
扩展了Android相机预览
我一直在尝试在Android上进行自定义摄像头活动,但是在旋转摄像头时,表面视图的纵横比会变得混乱。 在活动的oncreate中,我设置了框架布局,该框架布局保留了显示相机参数的表面视图。 //FrameLayout that will hold the camera preview FrameLayout previewHolder = (FrameLayout) findViewById(R.id.camerapreview); //Setting camera's preview size to the best preview size Size optimalSize = null; camera = getCameraInstance(); double aspectRatio = 0; if(camera != null){ //Setting the camera's aspect ratio Camera.Parameters parameters = camera.getParameters(); List<Size> sizes = parameters.getSupportedPreviewSizes(); …

3
了解画布和曲面概念
我正在努力理解绘制过程,SurfaceView因此整个过程Surface/ Canvas/Bitmap系统,该系统采用的是Android使用。 我已经阅读了所有文章和API文档页面,这些页面可以在android-developers网站上找到,一些关于android图形的教程,LunarLander源代码以及这个问题。 请告诉我,这些陈述中哪些是正确的,哪些不是,以及原因。 Canvas有它自己的Bitmap附件。Surface有它自己的Canvas附件。 所有View窗口共享相同的窗口Surface,因此共享相同的窗口Canvas。 SurfaceView是的子类View,与其他View子类及其View本身不同,它有自己Surface的特点。 另外还有一个问题: Surface如果已经有Canvas使用位图进行高级操作的原因,为什么需要一个类。举一个Canvas不适合做Surface可以做的工作的情况的例子。

18
Android,canvas:如何清除(删除)位于surfaceView中的画布(=位图)的内容?
为了制作简单的游戏,我使用了一个模板,该模板使用如下位图绘制画布: private void doDraw(Canvas canvas) { for (int i=0;i<8;i++) for (int j=0;j<9;j++) for (int k=0;k<7;k++) { canvas.drawBitmap(mBits[allBits[i][j][k]], i*50 -k*7, j*50 -k*7, null); } } (画布在“ run()”中定义,/ SurfaceView位于GameThread中。) 我的第一个问题是如何清除(或重画)整个画布以形成新布局? 其次,如何仅更新屏幕的一部分? // This is the routine that calls "doDraw": public void run() { while (mRun) { Canvas c = null; try { …

7
如何正确设置Android相机方向?
我想根据Android中的设备方向设置相机方向,但似乎没有任何作用。我尝试旋转“ Surface”以及相机参数,但纵向模式下的相机预览总是颠倒过来。我需要将其顺时针旋转90度才能正确。这是我现在使用的代码,仅在横向模式下有效。 SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() { @Override public void surfaceDestroyed(SurfaceHolder holder) { camera.stopPreview(); camera.release(); camera = null; } @Override public void surfaceCreated(SurfaceHolder holder) { initCamera(); } private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) { final double ASPECT_TOLERANCE = 0.2; double targetRatio = (double) w / h; if …

4
如何使Surfaceview透明
您好,我想使我的DrawingSurface视图透明。我尝试了很多事情,但是没有用。 这是我的XML代码,使我的表面视图透明 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/icon" > </ImageView> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00000000" > <codewalla.android.drawings.DrawingSurface android:id="@+id/drawingSurface" android:layout_width="fill_parent" android:layout_height="fill_parent" > </codewalla.android.drawings.DrawingSurface> </LinearLayout> </FrameLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/colorRedBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="10" android:onClick="onClick" android:text="R" /> <Button android:id="@+id/colorBlueBtn" android:layout_width="fill_parent" android:layout_height="wrap_content" …

10
片段-指定的子代已经有一个父代。您必须先在孩子的父母上调用removeView()
我收到此错误。我尝试了许多解决方案,但我无法解决。帮我!我需要使用片段将表面视图和按钮添加到活动中。 CamActivity.java: public class CamActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cam); FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragmentContainer); if(fragment == null) { fragment = new CamFragment(); fm.beginTransaction() .add(R.id.fragmentContainer, fragment) .commit(); } } } CamFragment.java: public class CamFragment extends Fragment { private static final String …

5
SurfaceHolder回调与Activity生命周期如何相关?
我一直在尝试实现需要在表面上预览相机的应用程序。正如我所看到的,活动和表面生命周期都包含以下状态: 首次启动活动时: onResume()->onSurfaceCreated()->onSurfaceChanged() 当我离开活动时: onPause()->onSurfaceDestroyed() 在此方案中,我可以做相应的像在开/释放摄像头和启动/停止预览电话onPause/onResume和onSurfaceCreated()/onSurfaceDestroyed()。 除非我锁定屏幕,否则它工作正常。当我启动该应用程序时,然后锁定屏幕并稍后解锁,我看到: onPause()-屏幕锁定后没有其他内容-然后是onResume()解锁后-之后没有任何表面回调。实际上,onResume()是在按下电源按钮并打开屏幕后调用的,但是锁定屏幕仍处于活动状态,因此,在活动可见之前就已经调用了。 使用此方案,解锁后会出现黑屏,并且不会调用任何表面回调。 这是一个代码片段,它不涉及相机的实际工作,而是SurfaceHolder回调。即使在我的手机上使用此代码,也会出现上述问题(按“返回”按钮时会以正常顺序调用回调,但锁定屏幕时会丢失回调): class Preview extends SurfaceView implements SurfaceHolder.Callback { private static final String tag= "Preview"; public Preview(Context context) { super(context); Log.d(tag, "Preview()"); SurfaceHolder holder = getHolder(); holder.addCallback(this); holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(SurfaceHolder holder) { Log.d(tag, "surfaceCreated"); } public void surfaceDestroyed(SurfaceHolder holder) { …

3
如何在Android上的Camera使用的SurfaceView上绘制覆盖图?
我有一个简单的程序,可将的预览绘制Camera为SurfaceView。我想做的是使用onPreviewFrame方法,每次将新框架绘制到中时都会调用该方法,SurfaceView以执行invalidate应该调用该onDraw方法的方法。实际上,该onDraw方法正在被调用,但是没有打印任何内容(我想相机预览将覆盖我尝试绘制的文本)。 这是SurfaceView我拥有的子类的简化版本: public class Superficie extends SurfaceView implements SurfaceHolder.Callback { SurfaceHolder mHolder; public Camera camera; Superficie(Context context) { super(context); mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } public void surfaceCreated(final SurfaceHolder holder) { camera = Camera.open(); try { camera.setPreviewDisplay(holder); camera.setPreviewCallback(new PreviewCallback() { public void onPreviewFrame(byte[] data, Camera arg1) { invalidar(); } }); …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.