我有一个包含两个SurfaceViews的FrameLayout.其中一个将显示相机预览,另一个是我用于绘图的自定义表面视图.问题是表面视图没有显示出来.如果我注释掉相机开始预览的行,它会在黑色背景上显示.这表明我的Surface视图定位良好,但我怀疑当相机预览绘制时出现问题.
相机视图:
public CameraView(Context context, AttributeSet a) {
super(context, a);
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
Run Code Online (Sandbox Code Playgroud)
自定义视图:
public InclinaisonGauge(Context context, AttributeSet attrs) {
super(context, attrs);
getHolder().addCallback(this);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
run = true;
updateThread = new Thread()
{
public void run()
{
Canvas c = null;
final SurfaceHolder inclHolder = getHolder();
while (run) {
try {
c = inclHolder.lockCanvas();
if(c!=null)
{
synchronized (inclHolder) {
onDraw(c);
}
}
} finally {
// do this in a finally …Run Code Online (Sandbox Code Playgroud) 所以我在我的游戏中使用了libgdx的舞台类到目前为止我在舞台上添加了一个演员,它只是为屏幕绘制了一个背景,我遇到的问题是当我移动舞台的相机来模拟滚动屏幕时(背景图像大于屏幕)相机不会移动.现在让我疯狂的是,当我在台式机启动器上运行时它会工作,但每当我在手机上运行它时它就不会滚动.我真的不知道会出现什么问题.我随后调用了移动摄像机的方法,因为每当调用它时,我都会将方法的名称记录到日志中,并且它会被调用.此外,我甚至记录了相机的位置并且它发生了变化,但只有当我在桌面上运行时,如果我在手机上运行它会记录相同的位置.我不知道这是不是一个bug因为我觉得很奇怪,它只能在桌面启动器上运行,是的,android启动器和桌面启动器都是使用相同的ApplicationListener实例初始化的.有什么建议?提前致谢.
这是简化的代码:
public void Create()
{
GameStage = new Stage(2000, 2000, true);
GameCamera = new OrthographicCamera(2000, 2000);
GameCamera.setToOrtho(true, 2000, 2000);
GameStage.setCamera(GameCamera);
GameStage.setViewport(2000, 2000, true);
}
public void MoveCamera()//it gets called when user drags across the screen
{
GameStage.getCamera().translate(x, y, 0);
GameStage.getCamera().update();
}
public void render()
{
//the background actor has been added at this point
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
GameStage.act(Gdx.graphics.getDeltaTime());
GameStage.draw();
}
Run Code Online (Sandbox Code Playgroud) 有没有人能够在他们的自定义相机应用程序中使用iPhone 5的新低光增强模式?我尝试了以下代码,但发现没有区别 - 而本机相机应用程序显着提高了亮度.
if ([[captureManager backFacingCamera] isLowLightBoostEnabled]) {
[[captureManager backFacingCamera] automaticallyEnablesLowLightBoostWhenAvailable];
}
Run Code Online (Sandbox Code Playgroud) 可能重复:将
图像叠加到相机预览SurfaceView上
嗨,我想创建一个自定义相机预览小部件,并在预览时显示当前时间.如何在预览和录制视频上添加文本.请给我一些想法?
在我的应用程序中,我具有计时器驱动的视频录制功能。当相机处于录制模式时,如果我单击屏幕上任意位置的按钮,则录制应暂停。我应该能够在再次单击时继续记录。
但在许多android设备中都没有暂停录制视频的动作。
还有其他方法吗?我找到了此链接,但没有给我任何希望。
有谁能够帮助我?
我使用Android 2.1,我想从相机意图结果获得真正的路径.我从ACTION_IMAGE_CAPTURE Intent读取了Get Path of image,但是它适用于android 2.2.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == CAMERA_RESULT)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imv.setImageBitmap(thumbnail);
Uri selectedImageUri = data.getData();
String path = getRealPathFromURI(selectedImageUri);
}
}
private String getRealPathFromURI(Uri contentUri)
{
try
{
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
catch (Exception e)
{
return contentUri.getPath();
}
}
Run Code Online (Sandbox Code Playgroud) 如果我们使用iPhone相机拍摄照片,默认情况下图像将以JPEG格式保存.
我想保存以PNG等其他格式捕获的图像.可能吗?
当我们从我们的应用程序调用iPhone相机时,是否可以从代码执行此操作,我们可以设置在捕获图片后必须保存的图像类型吗?我的意思是在拍摄照片之前打开相机并设置类型?
我可以使用闪光灯功能,访问照片库,并使用后/前相机.
我想实现在用户拍照时显示的网格线.
有任何想法吗?
我正在构建一个使用内置摄像头的Android应用程序.我正在逐步建设,所以我首先检查了相机预览.它在我的Jelly Bean手机上工作正常但是在姜饼手机上运行时相同的应用程序失败,无法启动预览错误
这是详细信息
表面视图以xml布局定义并且具有任意大小.果冻豆手机是galaxy s3,屏幕在正常类别中姜饼设备是星系Y,屏幕在小类别
这是日志输出
04-01 23:54:44.117: I/ApplicationPackageManager(15419): cscCountry is not German : INU
04-01 23:54:44.671: D/AndroidRuntime(15419): Shutting down VM
04-01 23:54:44.671: W/dalvikvm(15419): threadid=1: thread exiting with uncaught exception (group=0x40018578)
04-01 23:54:44.703: E/AndroidRuntime(15419): FATAL EXCEPTION: main
04-01 23:54:44.703: E/AndroidRuntime(15419): java.lang.RuntimeException: startPreview failed
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.hardware.Camera.startPreview(Native Method)
04-01 23:54:44.703: E/AndroidRuntime(15419): at com.example.witalk.CameraHandle.surfaceCreated(CameraHandle.java:98)
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.view.SurfaceView.updateWindow(SurfaceView.java:552)
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.view.SurfaceView.dispatchDraw(SurfaceView.java:350)
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
04-01 23:54:44.703: E/AndroidRuntime(15419): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
04-01 …Run Code Online (Sandbox Code Playgroud)