重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这是与设备相关的,因为硬件厂商才能自行定义硬件的属性。比如htc为相机闪光灯设置一个亮度文件,通过改写这个文件的值,可以达到变更相机闪光灯的亮度,魅族应该也是这样操作的。作为安卓系统来说,没有统一的解决方案的。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、雅安服务器托管、营销软件、网站建设、绥宁网站维护、网站推广。
参考htc闪光灯亮度root下的设置方法:
on 2.2 HTC devices you can use it by writing a string to/sys/devices/platform/flashlight.0/leds/flashlight/brightness. This controls if the LED is on and how bright it is. For maximum brightness write "128\n", half brightness write "64\n". Easy to test from adb shell:
1、用IHardwareService直接控制Android1.5以前是直接提供这个接口的,之后呢,需要我们自己来做一下。在你的项目中新建一个包android.os,新建一个IHardwareService.aidl文件,内容如下:[java] view plaincopyspan style="font-size:18px;"package android.os; /** {@hide} */ interface IHardwareService { // obsolete flashlight support boolean getFlashlightEnabled(); void setFlashlightEnabled(boolean on); }/span 然后在你的程序中引入[java] view plaincopyimport android.os.IHardwareService; /** * 设置闪光灯的开启和关闭 * @param isEnable * @author linc * @date 2012-3-18 */ private void setFlashlightEnabled(boolean isEnable) { try { Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class); IBinder binder = (IBinder) method.invoke(null, new Object[] { "hardware" }); IHardwareService localhardwareservice = IHardwareService.Stub.asInterface(binder); localhardwareservice.setFlashlightEnabled(isEnable); } catch (Exception e) { e.printStackTrace(); } } 这样就可以开启闪光灯了。要使用的权限:
[html] view plaincopyspan style="font-size:18px;" uses-permission android:name="android.permission.FLASHLIGHT" / uses-permission android:name="android.permission.HARDWARE_TEST" / /span 2、用照相机来控制闪光灯这是思维的另一个方向。Camera自带丰富的接口与Parameters,我们只管拿来使用就好了。[java] view plaincopyspan style="font-size:18px;" private Camera camera = null; private Parameters parameters = null; //直接开启 camera = Camera.open(); parameters = camera.getParameters(); parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);//开启 camera.setParameters(parameters); //直接关闭 parameters.setFlashMode(Parameters.FLASH_MODE_OFF);//关闭 camera.setParameters(parameters); camera.release();/span 如果这样遇到问题的话,可以尝试用camera的preview方法:[java] view plaincopyprivate void OpenLightOn() { if ( null == m_Camera ) { m_Camera = Camera.open(); } Camera.Parameters parameters = m_Camera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); m_Camera.setParameters( parameters ); m_Camera.autoFocus( new Camera.AutoFocusCallback (){ public void onAutoFocus(boolean success, Camera camera) { } }); m_Camera.startPreview(); } private void CloseLightOff() { if ( m_Camera != null ) { m_Camera.stopPreview(); m_Camera.release(); m_Camera = null; } }
可以通过parameters.getFlashMode()得到闪光灯状态,代码如下:
Camera cam = Camera.open();
Camera.Parameters p = cam.getParameters();
p.getFlashMode();//获取闪光灯的状态
一、声明闪光灯的权限
uses-permission android:name="android.permission.CAMERA"/
uses-permission android:name="android.permission.FLASHLIGHT" /
package com.google.yang.myapplication;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* 闪光灯的控制
*
* @author yang
*/
public class MainActivity extends AppCompatActivity {
private Button open;
private Button close;
private Button openFlicker;
private Button closeFlicker;
private Camera camera;
private Boolean isShanshuo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
open = (Button) this.findViewById(R.id.open);
close = (Button) this.findViewById(R.id.close);
openFlicker = (Button) findViewById(R.id.openFlicker);
closeFlicker = (Button) findViewById(R.id.closeFlicker);
open.setOnClickListener(openOnClickListener);
close.setOnClickListener(closeOnClickListener);
openFlicker.setOnClickListener(openFlickerOnClickListener);
closeFlicker.setOnClickListener(closeFlickerOnClickListener);
}
/**
* 打开手电筒
*/
private OnClickListener openOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
open();
}
};
/**
* 关闭手电筒
*/
private OnClickListener closeOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
close();
}
};
/**
* 开启闪烁
*/
private OnClickListener openFlickerOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
isShanshuo = true;
openFlicker.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
while (isShanshuo) {
open();
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
close();
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
};
/**
* 关闭闪烁
*/
private OnClickListener closeFlickerOnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
isShanshuo = false;
openFlicker.setEnabled(true);
}
};
/**
* 打开闪光灯
*
* @return
*/
private void open() {
try {
camera = Camera.open();
camera.startPreview();
Parameters parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭闪光灯
*
* @return
*/
private void close() {
try {
Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
} catch (Exception e) {
e.printStackTrace();
}
}
}
很多人觉得Android手机的拍照功能不如苹果,但事实上,许多Android手机配备了高质量摄像头,只要掌握正确方法,用手机拍出完美的照片也是很简单的,下面就带来Android手机拍摄实用小技巧,一起来看看吧。
了解摄像头设置
在开始拍摄之前,先要熟悉手机和摄像头的设置,之后再拍摄就会得心应手了。如果我们能够了解不同的模式和设置,就可以深入探索和实验,让拍摄更具创造力。
确保镜头干净
看起来这一点很奇怪,在使用单反相机时,我们可能会记得擦拭单反镜头,但是很难记得要擦拭手机镜头。Android手机摄像头没有防尘防刮保护罩,专业相机有。
随身携带一小块清洁布,或者在钱包、夹克内缝一小块超细纤维镜头清洁布,时时提醒自己擦拭手机镜头和屏幕,如此一来就可以确保手机拍摄出最清晰的照片。如果嫌麻烦,可以直接用汗衫擦拭。不要忘了擦拭前置摄像头。
忘了闪光灯 用外部光源
如果外部环境黑暗,我们会下意识打开闪光灯拍摄照片,但是获得的图片质量总是不尽人意。事实上,我们完全可以不使用闪光灯,几乎从不使用。在拍摄照片时,我们可以寻找自然光源。如果你在餐馆内,想拍摄一张菜肴的照片,可以选择靠窗户的座位,如此一来就可以获得完美的光线,拍出菜肴的细节。
如果你想自拍,可以站在大窗户前拍摄。这样拍摄并不会让你的脸和特征“亮”起来,但是会让背景变暗,让你本人处在注意力的正中央。如果没有自然光,要拍摄照片是不可能的,因此在拍摄时最好找一个外部光源,比如一盏灯或者一支蜡烛。虽然看起来很愚蠢,但是几乎所有的其它光线都要比闪光灯好,有了更好的光线,就可以控制拍摄的内容,让我们想要的`部分亮起来。
不要变焦
和Android手机的闪光灯一样,我们应该避开变焦功能。变焦会降低图像的质量,当我们编辑照片时可能会发现一些惊艳的东西,之前没有发现,我们可以将这些漂亮的部分剪出来。
这一点我们很难记住,Android设备和单反相机是不一样的。用手机拍摄时如果我们使用了变焦功能,图像的质量很难保持一致。
如果你真的想亲近自己拍摄的对象,请站起来,走近它,不要使用变焦功能。用这种方法拍摄,可以很好控制拍摄的对象,如果用变焦功能就会降低照片的整体质量。
爆发性拍摄然后挑选
在拍摄照片时,爆发性拍摄的确是一种懒惰的拍摄方式,但是它极可能是拍摄完美照片的最有效方式。
不管是自拍、拍风景、或者是拍摄菜肴,使用爆发性拍摄方式可以毫无压力拍出一大堆照片,我们只需要按下快门,就可以用快速镜头拍出很多照片,拍完之后再选择哪些最完美的。
虽然拍摄的照片有许多很糟糕,完全无法使用,但是当中还是有隐藏了少数“宝石”。花点时间细细查看拍摄的照片,挑出最好的,删除糟糕的。
找一个自己喜欢的照片编辑软件
拍完照片之后,你可以选择自己喜欢的APP编辑软件编辑照片。现在市场上有许多的软件可供选择,每一款软件都有自己独特的功能,比如过滤器、调整亮度和对比度、甚至还可以增加文本信息和贴纸。
如果你对自己拍摄的照片信心不足,照片编辑软件也是一个很棒的补充工具。如果你对某些照片的质量有点担心,用编辑软件稍稍编辑可以“拯救”这些照片。
在社交媒体上关注你喜欢的摄影师
有时,用Android手机拍摄最好的照片并不是从相机APP开始的,而是从浏览社交媒体开始的,我们在社交媒体上看到摄影师用Android手机拍摄漂亮的照片,从中可以学到经验。
在社区媒体上关注一些摄影师,向他们取经,可以获得一些很好的经验,因此我们完全可以先看看别人拍摄的好照片,然后走出去尝试一下。你可以发表评论,问问他,看他是如何用特定风格拍摄特定对象的,或者问问他们是如何编辑特定照片、使之呈现特定风格的,拍摄者可能会回复。
你可以前往Instagram页面探索一下,欣赏欣赏其它Android手机摄影师拍摄的照片。最开始时你可以挑选喜欢的风格模仿拍摄,最终将它变成自己的。