真高不明白 图像预览的例子 竟然放在这里,我觉得放在照相机那里边更好一些,这个例子很简单,就是先要获得图像预览的持有者 SurfaceHolder,然后相机通过它得到一个浏览的窗口。但是最主要 也是为啥把这个例子放在这 就是因为SurfaceHolder必须添加一个监听器实现几个接口:
class Preview extends SurfaceView implements SurfaceHolder.Callback {
SurfaceHolder mHolder;
Camera mCamera;
Preview(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 been created, acquire the camera and tell it where
// to draw.
mCamera = Camera.open();
try {
mCamera.setPreviewDisplay(holder);
} catch (IOException exception) {
mCamera.release();
mCamera = null;
// TODO: add more exception handling logic here
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
// Surface will be destroyed when we return, so stop the preview.
// Because the CameraDevice object is not a shared resource, it's very
// important to release it when the activity is paused.
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// Now that the size is known, set up the camera parameters and begin
// the preview.
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
mCamera.setParameters(parameters);
mCamera.startPreview();
}
}
public class CameraPreview extends Activity {
private Preview mPreview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hide the window title.
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Create our Preview view and set it as the content of our activity.
mPreview = new Preview(this);
setContentView(mPreview);
}
}
这里面用到最多的就是相机的设置了不说了。
分享到:
相关推荐
Android提供了Bitmap类来处理位图图像,我们可以将当前画布转换为Bitmap,然后使用MediaStore或Intent来保存到设备上。反之,也可以从设备中读取图片,将其加载到画布上供用户着色。 5. **权限管理**:由于涉及到...
首先,源码中的UI设计可能包含了`ImageView`用于预览图像,`Canvas`用于实际的绘图,以及一系列的按钮和滑块来控制颜色、线条宽度和橡皮擦功能。`LinearLayout`、`RelativeLayout`或`ConstraintLayout`等布局管理器...
综上所述,这个项目涉及了图像选择、图像处理、网络上传、手势识别、自定义绘图以及用户界面设计等多个技术领域,是移动应用开发中的一个典型实例。开发者通过这个示例可以学习到如何在实际项目中整合这些技术,为...
这涉及到对相机预览流的处理,以及如何将预览流转换成二维码识别所需的图像数据。我们需要理解和运用Android的Camera API或者Camera2 API,确保图像的正确捕获和处理。 在扫描逻辑方面,Zxing提供了解码器接口,...
在画图应用中,如果在画图模式和预览模式之间切换,可以利用Transition动画实现无缝过渡。 对于画图功能,Android提供了Canvas和Paint类来支持图形绘制。Canvas提供了画布,而Paint则定义了绘图的样式,如颜色、...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
它支持多种操作系统,包括但不限于Windows、macOS、Linux、Android和iOS。通过Qt,开发者可以使用同一套源代码,在不同平台上编译并生成原生外观与体验的应用程序,极大地提高了开发效率和产品一致性。 图形用户...
然后将这个角度转换为颜色值,并可能显示一个预览框,让用户看到所选颜色的效果。 在实际应用中,我们还可能需要考虑其他功能,例如添加一个颜色代码输入框,允许用户输入十六进制颜色代码,或者提供一个颜色历史...
总结起来,开发Android上的二维码应用涉及到的技能点包括Android Camera API的使用、图像处理、第三方库集成、二维码编码解码原理以及基本的Android应用开发流程。掌握这些技能,开发者可以创建出功能丰富的二维码...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
在Android应用开发中,图片的处理是不可或缺的一部分,特别是在用户交互和界面设计中。...开发者可以通过研究这段代码,深入了解Android图形与图像处理机制,并且能够应用到自己的项目中,提升应用的用户体验。
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 ...
Android Studio是Google提供的官方Android应用开发IDE,支持Gradle构建系统,提供丰富的调试工具、代码自动完成、布局预览等功能,使得开发者能够更高效地编写和测试应用。 6. **软件/插件**: 在Android Studio...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
8.5 将网络图像网址放入Gallery中显示——URL.URLConnection.BaseAdapter 8.6 即时访问网络图文件展示——HttpURLConnection 8.7 手机气象局,实时卫星云图——HttpURLConnection与URLConnection和运行线程 8.8 通过...
TCanvas可以用来在屏幕或内存中画图,允许我们在拖动过程中绘制图像的实时预览。 7. **代码示例**: 以下是一个简单的TImage拖动的伪代码示例: ```delphi procedure TForm1.Image1MouseDown(Sender: TObject; ...