2017-03-22 3 views
0

Android 애플리케이션을 개발하고 "가짜 lockscreen"을 만들어야합니다. 설명해.Android - 진짜 가짜 잠금 화면을 만드는 방법

화면이 잠겨있는 것처럼 응용 프로그램에 검은 색 화면이 표시되어야합니다. 그런 다음 사용자가 전화 잠금/잠금 해제 버튼을 누르면 가짜 잠금 화면을 표시하려고합니다.

내 문제는 현재 배경 화면으로 응용 프로그램 배경을 설정할 때 배경 무늬가 잘리지 않는다는 것입니다. 배경 이미지는 전화기의 "홈 스크린"과 같이 화면 수에 맞지 않고 화면에 맞습니다. 결과는 내가 기대하고있는 무슨 아니다,

내가 getBuiltInDrawable (FLAG_LOCK)를 사용하려고하지만 난 때 그것은 단지 API 24에서 사용할 수와 =/

질문에 대한 아이디어를 가지고있는 사람이 있습니까 여기?

미리 감사드립니다. Baptiste.

+0

일부 문제는 코드를 게시하고 리팩터링하여 이미지 크기 조정 모드를 변경하는 방법과 같습니다. – rupps

+0

@rupps 그래,하지만 이미지 스케일링 모드를 어떻게 바꿀 것인지에 대한 질문 이외에도 좋은 습관에 대해서도 알고 싶다. 잠금 화면을 가짜로 만들거나 정말로 잠금 화면을 만드는 것이 좋습니다. 잠금 화면을 가짜로 만들면 최상위 시스템 UI를 어떻게 표시 할 수 있습니까? 아래쪽 시스템 UI 등은 표시되지 않습니다 ... 가능한 한 내 일반적인 문제, lockscreen을 위조하기 위해 내 응용 프로그램을 구성하는 방법에 대해 논의하고 싶습니다.) – Baptiste

+1

정말로 진짜 잠금 화면을 만들고 임의의 장치에서 사용할 수 있다고 생각하지 않습니다. lockscreen 응용 프로그램은 시스템 권한으로 실행되며 사용자 지정 ROM에 삽입하거나 주변에서 놀아서 만 대체 할 수 있습니다. 루트 액세스가 필요한 외래 물건. 멋진 앱으로 가짜로 만들고 사용자가 깨닫지 못하도록기도하십시오. 그러나 더러운 일을하지 마십시오!왜 다음 포켓몬 이동을 코딩하지 않습니까? – rupps

답변

0

좋아, 그래서 당신은 어떤 작업 표시 줄에 전체 화면 테마를 사용하여 작업을 만들

1) 필요, 그래서 응용 프로그램처럼 보이지 않는다. 이를 위해, 당신은 ImageView를 사용 styles.xml의 스타일을 만들고 배경 이미지에 manifest.xml

Full Screen Theme for AppCompat

2)에 적용됩니다.

https://developer.android.com/reference/android/widget/ImageView.ScaleType.html

3) PIN을 입력 할 수있는 논리의 나머지 부분을 만들기 ... FIT, 센터 자르기 등 : ImageViews는 다른 모드를 선택할 수 있습니다 상자 밖으로 scaleType 속성이 있습니다. 다른 모의 이미지를 보여주세요. 실질적으로 당신의 "프로젝트"(ViewFlipper)에 맞는 멋진 구성 요소가 있으며 기본적으로 모든 이미지를 내부에 넣고 표시 할 이미지를 선택할 수 있습니다. 루트 레이아웃은 다음과 같이 더 많거나 적은 모양 :

<ViewFlipper 
    android:id="@+id/flipper" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- page 0: the lock screen mock --> 
    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

     <ImageView 
      android:src="@drawable/mock_lock_screen" 
      android:scaleType="centerCrop" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

     <EditText 
      android:id="@+id/pinCode" 
      android:layout_width="80dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:hint="PIN CODE" /> 
    </FrameLayout> 

    <!-- page 1: chrome screen mock--> 
    <ImageView 
     android:src="@drawable/mock_chrome" 
     android:scaleType="centerCrop" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <!-- page 2: wikipedia screen mock--> 
    <ImageView 
     android:src="@drawable/mock_wiki" 
     android:scaleType="centerCrop" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    . 
    . 
</ViewFlipper> 

그런 다음 활동에, 당신은 잠금 화면 및 모의 페이지에 표시 할 수 있습니다 :

ViewFlipper mFlipper; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    . 
    . 
    mFlipper = (ViewFlipper)findViewById(R.id.flipper); 
    . 
    . 
    . 
} 

을하고 표시된 화면을 변경

mFlipper.setDisplayedChild(0); // will show lock screen 
    mFlipper.setDisplayedChild(1); // will show chrome mock 
    mFlipper.setDisplayedChild(2); // will show wikipedia mock 

당신이 아이디어를 얻길 바랍니다! 행복한 코딩.

+0

정말 고마워요! 나는 그것이 내가 기대하고있는 것이고 내가 필요로하는 모든 정보는 아마도 여기있을 것이라고 생각한다! – Baptiste

+0

그래서 저는 여러분의 해결책을 시도합니다. 그것은 제가 원했던 것은 매우 차갑고 깔끔한 것입니다. 남아있는 문제는 배경 (배경 화면과 동일)이 올바르게 맞지 않는다는 것입니다. 실제로 match_parent 너비를 사용하면 배경의 너비가 1 화면이됩니다. 그러나 예를 들어 2 홈 화면과 함께 안드로이드의 홈 화면에 있다면 폭은 2 화면입니다. 홈 화면의 수를 얻을 수있는 수업이나 서비스가 있습니까? http://stackoverflow.com/questions/6086040/get-number-of-home-screens-in-android 또는 DisplayMetrics를 찾았지만 내 경우 유용하다고 생각하지 않습니다. :( – Baptiste

관련 문제