2013-03-15 3 views
0

나는 특정 활동에 사용되는 안드로이드에서 사용자 정의 화면 카테고리를 감지하고 싶습니다. 프로그램 적으로 레이아웃 sw640dp를 감지하고 싶습니다. 어떻게 달성 할 수 있습니까? 작은 크기의 일반, 큰 크기의 동일한 번호를 입력 할 수 있습니다. & xlarge 레이아웃이지만 나는 이것에 대해 잘 모릅니다. 친절하게 도와주세요. 고마워요.어떻게 안드로이드에서 사용자 정의 화면 카테고리를 감지 할 수 있습니까?

+0

다른 사람들과 다른 점은 무엇입니까? – Rajesh

+0

그것의 목표는 갤럭시 S3 장치, 그게 .. – Karthik

+0

내 질문은 어떻게 다른 사람과 다른 감지 논리인가? (그렇지 않습니다.) – Rajesh

답변

2

이유가 확실하지 않습니다. MDPI에서

:하지만, 빠른 주변 산책 예를 들어, 태그를 사용하는 것입니다

hdpi에에서
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/content_bg" 
    android:orientation="vertical" 
    android:id="@+id/name" 
    android:tag="mdpi-xxx-yyy" > 

:

android:id="@+id/name" 
    android:tag="hdpi-xxx-yyy" > 

그런 다음, R.id에 대한 귀하의 코드에서 태그를 읽어 .이름.


+0

android : 태그를 프로그래밍 방식으로 읽는 방법은 무엇입니까? – Karthik

+0

보기 v = (보기) findViewById (R.id.name); v.getTag(); – Calvin

1

sw640dp은 최소 사용 가능한 크기가 640dp 이상임을 의미합니다. 이는 활동의 사용 가능한 레이아웃 공간을 기반으로하며 장치의 실제 해상도는 아닙니다. 그래서 당신은이 활동에서 루트 레이아웃의 크기를 기반으로 계산할 수 있습니다

int density = getResources().getDisplayMetrics().density; 
int widthDp = rootView.getWidth()/density; 
int heightDp = rootView.getHeight()/density; 
if(widthDp >= 640 || heightDp >= 640) { 
    // qualifies for sw640dp 
} 
else { 
    // does not qualify for sw640dp 
} 

을 갤럭시 S3의 경우, 해상도는 640 × 360이 단위를 DP로 변환되는, 1280 * 720입니다. sw은 해상도가 아닌 레이아웃의 사용 가능한 크기와 관련되어 있으므로 이 아닌 것 같습니다. 의 상태 표시 줄과 같은 시스템 장식으로 인해 레이아웃의 사용 가능한 높이가 줄어들 수 있습니다.

+0

크기를 얻을 수는 있지만 다른 구성을 얻을 수는 없습니다. drawable-en-rUS-long-hdpi-v9 – Calvin

+0

@ Calvin Correct, 그러나 그것은 문제가되지 않았습니다. OP는'layout-sw640dp'를 탐지하는 방법을 알고 싶어했습니다. –

관련 문제