当前位置:首页 » 安卓系统 » android自动聚焦

android自动聚焦

发布时间: 2023-06-13 20:40:59

① 怎么让一个edittext 自动获得焦点

查了一下资料,第一个EditText控件往往会自动获得焦点,有些情况这是很不美观的,如果我们想让Edittext 默认不自动获取焦点,可以在EditText控件之前的一个控件的属性上加上:
android:focusable="true"
android:focusableInTouchMode="true"
例如:我在EditText控件前的一个Button控件上加上以上两句后就不会自动聚焦了,也就不会自动弹出输入法界面了。
<Button
android:id="@+id/circle_newcomment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_marginTop="3dp"
android:background="@drawable/edit_proct_num_cancle_normal"
android:gravity="center"
android:text="我要评论"
android:textSize="16sp" />

<EditText
android:id="@+id/comment_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
</EditText>

② android自定义相机怎么设置手动聚焦

eclipse(配好android环境的)

android手机一部

方法/步骤

1、首先创建回调方法,代码如下:

触屏调用:设置surfaceView的触屏事件,在该事件中实现camera回调。

③ 是否能关闭android手机的自动对焦功能

打开相机,点菜单进入设置,可以看到里面有一个自动对焦,把后面的勾点掉。

④ android多个输入框,在启动程序的时候,自动聚焦在第一个,该如何实现

android中,要使控件获得焦点,需要先setFocus,再requestFocus。
以Button为例:
btn.setFocusable(true);
btn.setFocusableInTouchMode(true);
btn.requestFocus();
btn.requestFocusFromTouch();

⑤ android 前置摄像头可以autofocus吗

android 前置摄像头可以autofocus方法:
第一:最常见的实现---利用按键或拍照前一次性自动聚焦在Activity里申明变量private
AutoFocusCallback myAutoFocusCallback = null;然后
自动聚焦变量回调

myAutoFocusCallback = new AutoFocusCallback()
{

public void onAutoFocus(boolean success, Camera
camera) {

// TODO Auto-generated method stub

if(success)//success表示对焦成功

{

Log.i(tag, "myAutoFocusCallback:
success...");

//myCamera.setOneShotPreviewCallback(null);

}

else

{

//未对焦成功

Log.i(tag, "myAutoFocusCallback: 失败了...");

}

}

};

在Camera.startPreview()之后,拍照Camera.takePicture()
之前调用myCamera.autoFocus(myAutoFocusCallback)。

第二:
通过TimerTask设置一个定时器来循环,每隔一定时间调用myCamera.autoFocus(myAutoFocusCallback)一次。结果是摄像头一直在自我聚焦,重复清晰--模糊----清晰---模糊的过程。

第三:通过Handler和Thread,开启一个线程进行自动聚焦。本质和第二种是一样的。后续我会写一个demo发上来。

第四:
通过监听传感器来触发autoFocus。常用的是角度传感器或加速度传感器,当监听的值超过一定阈值时触发。这也是国外程序员们常用的思路。

第五:设置聚焦方式为myParam.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
Continuous auto focus mode intended for video
recording. The camera continuously tries to focus. This is the best
choice for video recording because the focus changes smoothly .
Applications still can call takePicture(Camera.ShutterCallback,
Camera.PictureCallback,
Camera.PictureCallback) in this mode
but the subject may not be in focus. Auto focus starts when the
parameter is set.
Since API level 14, applications can
call autoFocus(AutoFocusCallback) in
this mode. The focus callback will immediately return with a
boolean that indicates whether the focus is sharp or not. The focus
position is locked after autoFocus call. If applications want to
resume the continuous focus, cancelAutoFocus must be called.
Restarting the preview will not resume the continuous autofocus. To
stop continuous focus, applications should change the focus mode to
other modes.
意思是在录像的时候调用这种聚焦方式好,在拍照情况下这种聚焦方式可能不成功。
设置之后myParam.set("rotation",
90);
这句话的设置不起作用。拍摄得到的照片和预览的方向是错90度的。需要得到Bitmap之后,利用Matrix自己旋转下。
旋转示例:mBitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);//data是字节数据,将其解析成位图myCamera.stopPreview();isPreview = false;
设置FOCUS_MODE_CONTINUOUS_VIDEO)之后,myParam.set("rotation",
90)失效。图片竟然不能旋转了,故这里要旋转下
Matrix matrix = new Matrix();
matrix.postRotate((float)90.0);
Bitmap rotaBitmap = Bitmap.createBitmap(mBitmap,
0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix,
false);
设置成FOCUS_MODE_CONTINUOUS_VIDEO之后,再调用Camera.autoFocus()会聚焦失败。

第六: 就是通过分析onPreviewFrame得到预览帧视频,分析亮度变化,来触Camera.autoFocus()。如果亮度变化,肯定是摄像头和被拍摄物体之间发生了相对运动,需要触发autoFocus()。某些手机里自带的
拍照软件可能就是采用这种方式。

⑥ 安卓Android4.0.4录象为何总是会自动对焦,如何取消自动对焦

回答即可得2分经验值,回答被选为满意回答可同步增加经验值和财富值在录相里面设置取消自动对焦就可以了

⑦ android中的聚焦状态,这个聚焦表示社么意思

表示当前控件获取了焦点

⑧ android代码上 如何设置自动聚焦 怎样才能验证是否自动聚焦的

相机的自动对焦调用Camera.autoFocus(callback)即可,相机硬件必须支持自动对焦,自动对焦的时候屏幕上有个过程,模糊到清晰,callback函数里面可以知道对焦结果,不需要知道结果可以传null参数进去。

⑨ android tv常见问题(一)焦点查找规律

https://github.com/Geekholt/TvFocus

Recyclerview聚焦到最后一个Item,继续按下键,焦点保持不变。

Recyclerview聚焦到最后一个Item,继续按下键,焦点会跳出RecyclerView,跳到附近的View上。

那么当Recyclerview滑动到最底部时,按下键,Android系统是如何找到下一个需要被聚焦的view的呢?我们把断点打在ViewGroup的focusSearch方法上,可以看到从ViewRootImp的performFocusNavigation方法开始,依次调用了如下方法。

View并不会直接去找焦点,而是交给它的parent去找。

焦点会逐级的交给父ViewGroup的focusSearch方法去处理,直到最外层的布局,最后实际上是调用了FocusFinder的findNextFocus方法去寻找新的焦点。

但是这里要注意的是,RecyclerView和其他的ViewGroup不一样,它自己重写了focusSearch方法。所以在焦点查找委托到达到DecorView之前,会先执行RecyclerView的focusSearch方法。

那么,RecyclerView和其他ViewGroup在寻找焦点方面有什么不一样呢? 为什么RecyclerView要重写ViewGroup的焦点查找机制呢 ?想知道这些问题的答案,那我们首先要知道ViewGroup的焦点查找机制。

ViewGroup的焦点查找机制的核心其实就是FocusFinder的findNextFocus方法。

主要步骤:

主要注意三点:

在addFocusables之后,找到指定方向上与当前focused距离最近的view。在进行查找之前,会统一坐标系。

总的来说就是根据当前focused的位置以及按键的方向,循环比较focusable集合中哪一个最适合,然后返回最合适的view,焦点查找就算完成了。

用于比较的方法。分别是将 当前聚焦的view 当前遍历到的focusable 目前为止最合适的focusable (i = 0时是优先级最低的rect)进行比较。

判断是否可以做为候选。可以看作是一个初步筛选的方法,但是到底哪个更好还需要看beamBeat方法,这个方法会将通过筛选的focusable和当前最合适的focusable进行比较,选出更合适的一个。

到这里为止ViewGroup的focusSearch方法基本上就讲完了。那么下面来看一下RecyclerView的focusSearch方法是如何实现焦点查找的。

前面讲到了,该方法主要是为了解决 RecyclerView聚焦在按键方向上、当前屏幕区域内可见的最后一个item时,当前不可见的下一个item将无法获得焦点。

这个方法是由LayoutManager来实现的,这就是RecyclerView的针对上面提到的情况的焦点查找方法。这里主要分析LinearLayoutManager中实现的该方法,如果在使用其他的LayoutManager时出现RecyclelerView焦点不符合预期的话,可以查看对于LayoutManager下的onFocusSearchFailed方法。

主要关注方法,通过这个方法的命名我们大致就可以看出来这个方法的作用了。这个方法主要会 根据当前RecyclerVIew的正逆序以及按键方向,找出最近一个部分或完全不可见的View

这个方法是RecyclerView内部的方法,和FocusFinder中的isCandidate方法的逻辑可以说几乎是一摸一样的。

到此为止ViewGroup的focusSearch和RecyclerVIew的focusSearch都分析完了。我们已经知道RecyclerView滑动到最底部的时候,发生了哪些焦点行为,那么解决起来就比较简单了。

结合KeyEvent事件的流转,处理焦点的时机,按照优先级(顺序)依次是:

以上任一处都可以指定焦点,一旦消费了就不再往下走。

比如前面说到了RecyclerView就是通过重写focusSearch方法对边界上部分可见或不可见的view的焦点查找进行了特殊处理。

重写RecyclerView的focusSearch方法

热点内容
java对称加密 发布:2025-02-08 01:48:04 浏览:521
java报表框架 发布:2025-02-08 01:47:59 浏览:928
方舟手游怎么防止踢出服务器 发布:2025-02-08 01:42:44 浏览:690
c语言中函数的声明函数 发布:2025-02-08 01:41:08 浏览:68
编译termux 发布:2025-02-08 01:39:42 浏览:649
王者荣耀安卓哪里看ios国服榜 发布:2025-02-08 01:25:54 浏览:630
解压带教程 发布:2025-02-08 01:16:33 浏览:760
什么是程序存储器 发布:2025-02-08 01:05:01 浏览:315
解压包手机安装 发布:2025-02-08 00:49:29 浏览:961
詹雯婷访问 发布:2025-02-08 00:42:02 浏览:310