Android应用开发揭秘的第19个程序5_14_GetDisplay修改版和高仿版的源码注释

//有一段时间没写博客了

//获取屏幕的宽和高

//Activity01.java

package com.GetDisplay;

import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;

public class Activity01 extends Activity
{
 TextView mTextView = null;


 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  /* 定义DisplayMetrics对象 */
  DisplayMetrics dm = new DisplayMetrics();
  
  /* 取得窗口属性 */
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  
  /* 窗口的宽度 */
  int screenWidth = dm.widthPixels;
  
  /* 窗口的高度 */
  int screenHeight = dm.heightPixels;

  mTextView = (TextView) findViewById(R.id.TextView01);

  mTextView.setText("屏幕宽度:" + screenWidth + "\n屏幕高度:" + screenHeight);

 }
}

 

//Gf_GetDisplayActivity.java

//same to above ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我之前的回答有误。ADB无法直接调用Android API。要调用Android 12的API,您需要编写一个Android应用程序,并在其中使用API来切换主屏幕和辅屏幕之间的控制。 以下是一个示例应用程序,它可以检测红外遥控器的按键事件,并在按下不同的按键时切换主屏幕和辅屏幕之间的控制。请注意,这只是一个示例,并且需要根据您的设备和要求进行修改和调整: ```java public class MainActivity extends AppCompatActivity { private WindowManager mWindowManager; private Display mMainDisplay; private Display mAuxDisplay; private boolean mMainDisplayActive = true; // 主屏幕是否处于活动状态 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); mMainDisplay = mWindowManager.getDefaultDisplay(); mAuxDisplay = mWindowManager.getDisplay(Display.DEFAULT_DISPLAY + 1); // 注册红外遥控器事件监听器 ConsumerIrManager irManager = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE); irManager.registerIrSensorListener(mIrSensorListener, 0); } @Override protected void onDestroy() { super.onDestroy(); // 取消注册红外遥控器事件监听器 ConsumerIrManager irManager = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE); irManager.unregisterIrSensorListener(mIrSensorListener); } private final ConsumerIrManager.IrSensorEventListener mIrSensorListener = new ConsumerIrManager.IrSensorEventListener() { @Override public void onIrSensorEvent(IrSensorEvent event) { // 检测按键事件 if (event.getEventType() == IrSensorEvent.IR_SENSOR_EVENT_TYPE_BUTTON_DOWN) { // 获取按键码 int keyCode = event.getButtonCode(); // 切换主屏幕和辅屏幕之间的控制 if (keyCode == KEYCODE_SWITCH_SCREEN) { if (mMainDisplayActive) { mWindowManager.setPreferredDisplay(Display.DEFAULT_DISPLAY + 1); mMainDisplayActive = false; } else { mWindowManager.setPreferredDisplay(Display.DEFAULT_DISPLAY); mMainDisplayActive = true; } } } } }; } ``` 在这个示例程序中,我们首先获取了主屏幕和辅屏幕的显示对象,然后注册了一个红外遥控器事件监听器。当检测到红外遥控器的按键事件时,我们检查按下的按键码是否为我们定义的KEYCODE_SWITCH_SCREEN,如果是,则切换主屏幕和辅屏幕之间的控制。我们使用WindowManager的setPreferredDisplay方法来实现这一功能。 请注意,这个示例程序并不完整,并且需要根据您的设备和要求进行修改和调整。如果您不确定如何编写Android应用程序,请参考相关的Android开发文档或寻求专业人士的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值