标签: android-screen

当屏幕被唤醒并且锁定屏幕未禁用时,Android活动不显示

我有一个BroadcastReceiver开始Activity.如果在Activity屏幕打开时启动,则显示并且一切正常.但是,在ICS和JB设备上(我没有测试GB或HC,但Froyo不存在问题)如果Activity在屏幕关闭时启动,则锁定屏幕不会被禁用,并且当活动未显示时手机解锁(通过手动解锁或使用我为后Froyo设备输入的代码).

为什么,至少在ICS和JB设备上,如果没有下面提到的代码,锁屏就不会被禁用,为什么活动显示屏幕Activity在启动时屏幕是否关闭?

这是代码:

BroadcastReceiver:

Intent alarmAlert = new Intent(context, AlarmGoneOffActivity.class);
alarmAlert.putExtra(MyAlarmManager.ALARM_NUM_ID, alarm.ID);
alarmAlert.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
                    Intent.FLAG_ACTIVITY_NO_USER_ACTION);
context.startActivity(alarmAlert);
Run Code Online (Sandbox Code Playgroud)

AlarmGoneOffActivity.onCreate():

setContentView(R.layout.alarm_gone_off);

final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
             WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}

//so far all of my post froyo devices (ICS and JB no more GB)
// don't bypass the lockscreen unless we use this
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
    KeyguardManager …
Run Code Online (Sandbox Code Playgroud)

android android-screen android-windowmanager android-activity

7
推荐指数
1
解决办法
2706
查看次数

Android - 如何动态更改片段布局

我有一个平板电脑应用程序,其中包含显示我公司数据的片段.当我在页面上时,我想用屏幕方向动态地改变我的布局,但我还没找到.

如果有人得到了解决方案,请提前感谢

android android-layout android-screen android-fragments

7
推荐指数
1
解决办法
2万
查看次数

我怎么能有屏幕闲置监听器?

我需要使用空闲侦听器来监听用户正在使用应用程序或在活动处于活动状态时闲置.当用户不使用应用程序超过十秒钟时,我需要做一些事情.我怎么能让它成为可能?

android listener python-idle android-screen

6
推荐指数
1
解决办法
1357
查看次数

如何在运行时计算屏幕高度和宽度?

我在android中有以下类,我在其中定义了一些函数来计算屏幕上Bubbles的运动.

public class floatBubble  {
     private Bitmap img; // the image of the ball
     private int coordX = 512; // the x coordinate at the canvas
     private int coordY = 600; // the y coordinate at the canvas 
     private int id; // gives every ball his own id, for now not necessary
     private static int count = 1;
     private boolean goRight = true;
     private boolean goDown = true;
   public floatBubble(Context context, int drawable) {
     BitmapFactory.Options opts = new BitmapFactory.Options();
       opts.inJustDecodeBounds …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-screen

6
推荐指数
1
解决办法
2562
查看次数

Canvas坐标系的单位是多少? - android

我发现Canvas坐标系的单位与屏幕的坐标系不同.

例如在我的情况下如下:

对于一个特定的点,坐标从获得的它的屏幕上的ImageView.getX()ImageView.getY()(336, 578).

然后通过反复试验,我在画布上画一个点,使这个点完全落在与ImageView相同的位置.我打电话canvas.drawCircle(330, 440, radius, paint);来实现这一目标.

问题出在这里:

为什么2坐标(336,578)和(330,440)不同?

是因为屏幕和画布使用不同的单位?

这是关于像素,dp和所有这些的问题吗?

android android-screen android-canvas android-drawable

6
推荐指数
1
解决办法
3252
查看次数

如何为多个屏幕分辨率定义可绘制文件夹名称(Nexus 10和Galaxy Tab 10之间的冲突)?

以下文件夹结构适用于上述设备和解决方案:

  • drawable-hdpi - 适用于480x800
  • drawable-ldpi - 空
  • drawable-mdpi - 适用于320x480和240x320(mdpi设备)
  • drawable-sw600dp-tvdpi - 适用于Nexus 7 2012 tvdpi
  • drawable-sw600dp-xhdpi - 适用于Nexus 7 2013 xhdpi

问题在于Nexus 10和三星Galaxy Tab 10(Tab是Android 4.0和mdpi).为了处理这两个设备我添加了两个单独的可绘制文件夹

  • drawable-sw800dp-xhdpi - 适用于Nexus 10(将​​2560x1600分辨率图像放入此文件夹)
  • drawable-sw800dp-mdpi - 适用于三星Galaxy Tab 10(将​​1280x800分辨率图像放入此文件夹)

但是,Nexus 10和三星Galaxy Tab 10都使用了drawable-sw800dp-xhdpi中的图像.

我还尝试了什么?

  • drawable-sw720dp-xhdpi - 适用于Nexus 10
  • drawable-sw720dp-mdpi - 适用于三星Galaxy Tab 10

类似的结果,Nexus 10和三星Galaxy Tab 10都使用了drawable-sw720dp-xhdpi的图像.

我也尝试使用drawable-xlarge-mdpidrawable-xlarge-xhdpi(删除drawable-sw800dp-mdpi和drawable-sw800dp-xhdpi)来处理三星Galaxy Tab 10但Tab是Android 4.0并且xlarge不推荐使用结构.所以它是根据新的目录结构(即drawable-sw600dp-xhdpi).

其他相关的东西

在Eclipse图形布局编辑器中,选择10.1"WXGA(平板电脑),就像三星Galaxy Tab 10一样,显示正确的图像(来自drawable-sw800dp-mdpi).但是,当我在设备或模拟器中测试相同的东西时,它显示来自提拉 - sw800dp-xhdpi.

Manifrest:

<uses-sdk
        android:minSdkVersion="8" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-screen android-screen-support android-drawable

6
推荐指数
1
解决办法
3900
查看次数

有没有办法通过服务实用地唤醒屏幕?

我希望手机屏幕闪烁或唤醒一次,持续几毫秒.我在stackoverflow上读了几个问题.提供大多数解决方案是为了支持活动.因为它需要window明显属于活动而不是服务的对象.

我的服务是前台服务,系统可以为内存收集活动.但是我的服务被系统收集的可能性非常小,因为它是前台服务.

window通过使用以下标志从使用对象的活动,我们可以唤醒屏幕:

 WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
 WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
 WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
 WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
Run Code Online (Sandbox Code Playgroud)

有没有其他方法我可以从服务中唤醒屏幕?

android android-screen foreground-service

6
推荐指数
1
解决办法
77
查看次数

如何在不与FLAG_KEEP_SCREEN_ON冲突的情况下将屏幕调暗为零

我找到了几种方法来调暗屏幕,但我不确定它们是如何与FLAG_KEEP_SCREEN_ON协同工作的:

即使我将亮度设置为0.0,上述哪种方法都会保持屏幕亮起

android android-screen

5
推荐指数
1
解决办法
1502
查看次数

支持多种屏幕尺寸 - Android

我将在Android中开发新的应用程序.此应用程序应仅以纵向(即使是平板电脑)工作.在手机和平​​板电脑上,UI和布局设计应该类似.我们无法改变平板电脑的布局设计,因为它有很大的使用面积.我们必须拉伸所有图像以匹配手机.我们可以使用九个补丁.但我对在多个drawable中使用图像有点困惑.

根据我的分析(可能是错误的...... :))屏幕分为密度和大小.我们可以使用3:4:6:8的缩放比例.但这个比例是基于密度的.但在我的情况下,我必须拉伸整个用户界面来填充平板电脑屏幕.

那么什么是可以用于这样的应用程序的drawables,它可以支持多个设备.我们必须设计哪些屏幕尺寸.

这个应用程序需要近100个布局.所以我打算保持单一布局,并使用每个布局的重量来设计布局,而不是使用尺寸.

此外,如果我使用多个APK来支持不同的屏幕大小,那么用于支持的绘图是什么.小和正常2.大3. Xlarge

android android-screen android-screen-support

5
推荐指数
2
解决办法
2万
查看次数

是否可以检测到用户何时打开屏幕(Android)?

我发现两年前的帖子说有人无法做到。我还发现可以使用ACTION_USER_PRESENT来检测用户何时解锁屏幕,但是可以检测到用户何时打开屏幕(通过任何操作)?

编辑:我想知道用户何时按下任何按钮或执行其他可以打开屏幕的操作

android android-screen android-wake-lock

5
推荐指数
2
解决办法
2847
查看次数