博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android HDMI 清晰度 分辨率
阅读量:5835 次
发布时间:2019-06-18

本文共 5870 字,大约阅读时间需要 19 分钟。

 

但改变分辨率时,发送广播即可:

    Intent intent_outputmode_change = new Intent(ACTION_OUTPUTMODE_CHANGE);

     intent_outputmode_change.putExtra(OUTPUT_MODE, outputmode_entries_logic);
     intent_outputmode_change.putExtra("cvbs_mode", 1/0);     
     this.getContext().sendBroadcast(intent_outputmode_change);

 

import android.content.Context;import android.content.Intent;import android.util.Log;public class DisplayUtil {    private final static String ACTION_OUTPUTMODE_CHANGE = "android.intent.action.OUTPUTMODE_CHANGE";        private final static String OUTPUT_MODE = "output_mode";    private final static String ACTION_OUTPUTMODE_SAVE = "android.intent.action.OUTPUTMODE_SAVE";    private final static String ACTION_OUTPUTPOSITION_CHANGE = "android.intent.action.OUTPUTPOSITION_CHANGE";    private final static String ACTION_OUTPUTPOSITION_SAVE = "android.intent.action.OUTPUTPOSITION_SAVE";    private final static String ACTION_OUTPUTPOSITION_DEFAULT_SAVE = "android.intent.action.OUTPUTPOSITION_DEFAULT_SAVE";    private final static String OUTPUT_POSITION_X = "output_position_x";    private final static String OUTPUT_POSITION_Y = "output_position_y";    private final static String OUTPUT_POSITION_W = "output_position_w";    private final static String OUTPUT_POSITION_H = "output_position_h";    private final static String OUTPUT_POSITION_MODE = "output_position_mode";    private static final String TAG = "======";    public static void setOutputMode(Context c, String mode) {        Intent intent_outputmode_change = new Intent(ACTION_OUTPUTMODE_CHANGE);        intent_outputmode_change.putExtra(OUTPUT_MODE, mode);        intent_outputmode_change.putExtra("cvbs_mode", 0);                c.sendBroadcast(intent_outputmode_change);                Intent intent_outputmode_save = new Intent(ACTION_OUTPUTMODE_SAVE);        intent_outputmode_save.putExtra(OUTPUT_MODE, mode);        c.sendBroadcast(intent_outputmode_save);            }    public static void setPosition(Context context, int l, int t, int r, int b,            int mode) {        Intent intent_output_position = new Intent(ACTION_OUTPUTPOSITION_CHANGE);        intent_output_position.putExtra(OUTPUT_POSITION_X, l);        intent_output_position.putExtra(OUTPUT_POSITION_Y, t);        intent_output_position.putExtra(OUTPUT_POSITION_W, r);        intent_output_position.putExtra(OUTPUT_POSITION_H, b);        intent_output_position.putExtra(OUTPUT_POSITION_MODE, mode);        context.sendBroadcast(intent_output_position);        //        savePosition(context, l,t,r,b);                Log.i(TAG, "--------------------------------position Set");        Log.d(TAG, "--------------------------------set display axis x = " + l);        Log.d(TAG, "--------------------------------set display axis y = " + t);        Log.d(TAG, "--------------------------------set display axis width = " + r);        Log.d(TAG, "--------------------------------set display axis height = " + b);            }    public static void savePosition(Context context, int left, int top,            int width, int height) {        Intent intent_output_position = new Intent(ACTION_OUTPUTPOSITION_SAVE);        intent_output_position.putExtra(OUTPUT_POSITION_X, left);        intent_output_position.putExtra(OUTPUT_POSITION_Y, top);        intent_output_position.putExtra(OUTPUT_POSITION_W, width);        intent_output_position.putExtra(OUTPUT_POSITION_H, height);        context.sendBroadcast(intent_output_position);//        Log.i(TAG, "--------------------------------position Set");//        Log.d(TAG, "--------------------------------set display axis x = " + x);//        Log.d(TAG, "--------------------------------set display axis y = " + y);//        Log.d(TAG, "--------------------------------set display axis width = " + position_cur.width);//        Log.d(TAG, "--------------------------------set display axis height = " + position_cur.height);            }    public static void savePositionDefault(Context context) {        Intent intent_output_position = new Intent(ACTION_OUTPUTPOSITION_DEFAULT_SAVE);        context.sendBroadcast(intent_output_position);            }}
View Code

 

分辨率显示outputmode_entries_display和取值outputmode_entries_logic:

<!-- Display settings.  The type of output mode to show. -->

      <string-array name="outputmode_entries_display">
          <item>480P</item>
          <item>576P</item>
          <item>720P 60HZ</item>
          <item>1080I 60HZ</item>
          <item>1080P 60HZ</item>
          <item>720P 50HZ</item>
          <item>1080I 50HZ</item>
      </string-array>
      <string-array name="outputmode_entries_logic">
          <item>480p</item>
          <item>576p</item>
          <item>720p</item>
          <item>1080i</item>
          <item>1080p</item>
          <item>720p50hz</item>
          <item>1080i50hz</item>
      </string-array>
     

       <receiver android:name="net.sunniwell.settings.sdzx.content.OutputSettingsBroadcastReceiver">

           <intent-filter>
               <action android:name="android.intent.action.BOOT_COMPLETED"/>
               <action android:name="android.intent.action.OUTPUTMODE_CHANGE"/>
               <action android:name="android.intent.action.OUTPUTMODE_CANCEL"/>
               <action android:name="android.intent.action.OUTPUTMODE_SAVE"/>
               <action android:name="android.intent.action.OUTPUTPOSITION_CHANGE"/>
               <action android:name="android.intent.action.OUTPUTPOSITION_CANCEL"/>
               <action android:name="android.intent.action.OUTPUTPOSITION_SAVE"/>
               <action android:name="android.intent.action.OUTPUTPOSITION_DEFAULT_SAVE"/>
               <action android:name="android.intent.action.DISP_CHANGE"/>
               <action android:name="android.intent.action.REALVIDEO_ON"/>
               <action android:name="android.intent.action.REALVIDEO_OFF"/>
               <action android:name="android.intent.action.VIDEOPOSITION_CHANGE"/>
               <action android:name="android.intent.action.CVBSMODE_CHANGE"/>
           </intent-filter>
        </receiver>

 

如果setting没带处理,需要自己做:

settings源码的文件:

OutputSettingsBroadcastReceiver.java 改变分辨率。

HDMICheckHandler.java 自动检测hdmi最佳分辨率。

 

位置坐标文件,实现屏幕放大,缩小: /sys/class/ppmgr/ppscaler_rect: x:58,y:29,w:1280,h:720

分辨率文件: /sys/class/display/mode : 1080p

转载地址:http://bwjcx.baihongyu.com/

你可能感兴趣的文章
Linux crontab定时执行任务
查看>>
mysql root密码重置
查看>>
33蛇形填数
查看>>
选择排序
查看>>
SQL Server 数据库的数据和日志空间信息
查看>>
前端基础之JavaScript
查看>>
自己动手做个智能小车(6)
查看>>
自己遇到的,曾未知道的知识点
查看>>
P1382 楼房 set用法小结
查看>>
分类器性能度量
查看>>
windows 环境下切换 python2 与 pythone3 以及常用命令
查看>>
docker 基础
查看>>
解决灾难恢复后域共享目录SYSVOL与NELOGON共享丢失
查看>>
写一个bat文件,删除文件名符合特定规则,且更改日期在某
查看>>
我的友情链接
查看>>
写Use Case的一种方式,从oracle的tutorial抄来的
查看>>
【C#】protected 变量类型
查看>>
Ubuntu解压
查看>>
爬虫_房多多(设置随机数反爬)
查看>>
藏地密码
查看>>