블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

In your manifest, you need:

android:resizeableActivity="false"

So in your manifest file, for each activity that you want to disable the feature in, it would be like:

<activity android:name=".SomeActivity"
    android:label="@string/app_name"
    android:resizeableActivity="false" />

Or, if you want to disable it in your entire app:

<application 
   android:resizeableActivity="false" >
    . . .
</application>

As for what will happen, Android just won't let your app go into multi-screen mode - it will just stay full screen. See https://developer.android.com/preview/features/multi-window.html and https://developer.android.com/guide/topics/manifest/activity-element.html#resizeableActivity.

 

[링크] https://stackoverflow.com/questions/37311145/how-can-i-disable-multiwindow-mode-for-an-activity-in-android-n

 

How can I disable multiwindow mode for an Activity in Android N+

In the developer preview for Android N, multi-window support is enabled by default. How can I disable it for activites? Also what will happen if a multi-window enabled app launches my disabled ac...

stackoverflow.com

[참조] https://50billion-dollars.tistory.com/entry/Android-%EB%8B%A4%EC%A4%91-%EC%B0%BD-%EB%A7%89%EA%B8%B0

 

[Android] 다중 창 막기

이번 포스트에선 안드로이드 누가 버전(Android 7.0, API Level 24)부터 새로 생긴 기능인 다중 창(multi windows)을 막는 방법을 소개해드리겠습니다. 이게 왜 필요하냐면 다중 창 모드가 시작되고 해제될

50billion-dollars.tistory.com

 

 

[추가] API 31이상, 큰 화면(sw >= 600dp)에서는 Multi Window가 막히지 않는 것 같다.(경고는 뜸)

resizeableActivity

매니페스트의 <activity> 또는 <application> 요소에서 이 속성을 설정하여 API 수준 30 이하에서 멀티 윈도우 모드를 사용 설정하거나 사용 중지할 수 있습니다.

 
<application
  android:name=".MyActivity"
  android:resizeableActivity=["true" | "false"] />

이 속성을 true로 설정하면, 활동을 화면 분할 모드와 자유 형식 모드로 시작할 수 있습니다. 이 속성을 false로 설정하면, 활동이 멀티 윈도우 모드를 지원하지 않습니다. 이 값이 false일 때 사용자가 멀티 윈도우 모드로 활동을 시작하려고 하면 활동은 전체 화면으로 열립니다.

앱이 API 수준 24 이상을 타겟팅하지만 이 속성 값을 지정하지 않은 경우 이 속성의 기본값은 true가 됩니다.

앱이 API 수준 31 이상을 타겟팅하는 경우 이 속성은 작은 화면 및 큰 화면에서 다르게 작동합니다.

  • 큰 화면(sw >= 600dp): 모든 앱이 멀티 윈도우 모드를 지원합니다. 이 속성은 활동의 크기를 조절할 수 있는지 여부를 나타냅니다. resizeableActivity="false"인 경우 디스플레이 치수를 준수하기 위해 필요한 경우 앱이 호환성 모드로 전환됩니다.
  • 작은 화면(sw < 600dp): resizeableActivity="true" 및 활동 최소 너비 및 최소 높이가 멀티 윈도우 요구사항 내에 있는 경우 활동은 멀티 윈도우 모드를 지원합니다. resizeableActivity="false"인 경우 활동이 최소 너비 및 높이와 관계없이 멀티 윈도우 모드를 지원하지 않습니다.

[참조] https://developer.android.com/guide/topics/large-screens/multi-window-support

 

멀티 윈도우 지원  |  Android 개발자  |  Android Developers

멀티 윈도우 지원 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 멀티 윈도우 모드를 통해 여러 앱이 같은 화면을 동시에 공유할 수 있습니다. 시스템에서

developer.android.com

 

반응형
Posted by blueasa
, |

C#으로 ESC키 무시 방법을 찾는데 왜 찾는 녀석은 안나오고... C++에서의 방법들만 나오는지 ㅡ_ㅢ;;
에효.. 암튼... 언제든 쓸모가 있을 듯 하니... 한번 옮겨놔 보련다.....


1. Enter, ESC 키 무시 방법

모달리스 다이얼로그를 만들고 이 ESC,ENTER 키를 입력하면 다이얼로그가 사라지게 됩니다. 그렇다고 꼭 이 키를 무시해야 한다는 건 아니고 경우에 따라 무시를 해도 되고 다른 동작을 하게해도 됩니다. 이는 개발자 마음!!
모달리스 다이얼로그 클래스에서 PreTranslateMessage()를 아래와 같이 오버라이딩 해주면 됩니다.


/*
     ESC, Enter key를 무시한다.
*/
BOOL CProcessADlg::PreTranslateMessage(MSG* pMsg)
{
    // TODO: Add your specialized code here and/or call the base class
    switch(pMsg->message)
    {
    case WM_KEYDOWN:
        {
            switch(pMsg->wParam)
            {
            case VK_ESCAPE:
            case VK_RETURN:
                return TRUE;
            }
        }
    }
    return CDialog::PreTranslateMessage(pMsg);
}


2. 소멸 방법

모 달리스 다이얼로그를 소멸하려면 두 가지 측면에서 생각해야 합니다. 하나는 모달리스 다이얼로그를 생성하는 부모 윈도우 객체이고 하나는 모달리스 다이얼로그 자신입니다.  부모 윈도우 객체에서는 모달리스 다이얼로그를 생성할 때 모달리스 다이얼로그 객체 변수를 정한 후 메모리 할당을 하고 Create()함수를 호출하여 생성하게 됩니다. 그렇다면 모달리스 다이얼로그가 파괴 될 때 부모 윈도우가 이를 알 수 있어야 메모리 해제를 제대로 해 줄 수 있습니다. 제가 사용한 방식은 모달리스 다이얼로그 객체에서 자기 자신의 메모리를 해제하고 부모 윈도우에서는 모달리스 다이얼로그 객체변수에 NULL 포인터를 전달하는 방식을 사용했습니다. 이렇게 하기 위해서 모달리스 다이얼로그의 PostNcDestroy()가 호출 되는 시점에서 부모 윈도우에게 사용자 정의 메시지(저는 WM_DESTROY_DLG라고 정했습니다.)를 하나 정해서 SendMessage함수를 통해서 메시지를 전달해 주고 부모 윈도우에서는 이 메시지를 처리합니다. 그리고 모달리스 다이얼로그에서 자기 자신의 메모리를 해제 합니다. 이 과정에 대해서는 예제 소스를 함께 첩부해 놓았습니다. 말로 설명해보려고 했는데 글 재주가 없어서;;


※ 위 글에 대한 잘못된 부분이나 궁금하신 부분에 대한 피드백은 언제나 환영입니다 ~ 물론, 퍼가신다면 영광이구요. 우리나라의 모든 개발자 분들께서 바쁘시지만 서로 자신의 귀중한 경험과 지식을 공유해서 함께 발전해 나갈 수 있었으면 합니다 ^^

Dialog.zip


출처: greenfrog님의 블로그 - Programmer greenfrog!!

반응형
Posted by blueasa
, |