android - How to get screen size from context

activity_main.xml
 <RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/rl"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:padding="10dp"     tools:context=".MainActivity"     android:background="#bdedcc"     android:animateLayoutChanges="true"     >     <TextView         android:id="@+id/tv"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:fontFamily="Sans-Serif-Condensed"         android:textSize="18dp"         android:textStyle="italic"         android:textColor="#000000"         android:padding="15dp"         />     <Button         android:id="@+id/btn"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="Get Screen Size From Context"         android:layout_below="@id/tv"         /> </RelativeLayout> 
MainActivity.java
 package com.cfsuman.me.androidcodesnippets;  import android.app.ActionBar; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.Button;  import android.widget.RelativeLayout; import android.widget.TextView; import android.util.DisplayMetrics; import android.content.Context; import android.view.WindowManager;    public class MainActivity extends Activity {      protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          // Get the widgets reference from XML layout         simpulan RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);         simpulan Button btn = (Button) findViewById(R.id.btn);         simpulan TextView tv = (TextView) findViewById(R.id.tv);          ActionBar ab = getActionBar();         ab.setBackgroundDrawable(new ColorDrawable(Color.YELLOW));          btn.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 /*                     Context                         Interface to global information about an application environment.                         This is an abstract class whose implementation is provided by the                         Android system. It allows access to application-specific resources                         and classes, as well as up-calls for application-level operations                         such as launching activities, broadcasting and receiving intents, etc.                 */                  // Get the application context                 Context context = getApplicationContext();                  tv.setText("Screen width : " + getScreenWidthInPixels(context) + "pixels");                 tv.setText(tv.getText() + "\nScreen height : "                         + getScreenHeightInPixels(context) + "pixels");            }         });      }      // Custom method to get screen width in pixels using Context object     public static int getScreenWidthInPixels(Context context){         /*             DisplayMetrics                 A structure describing general information about a display,                 such as its size, density, and font scaling.         */         DisplayMetrics dm = new DisplayMetrics();          /*             WindowManager                 The interface that apps use to talk to the window manager.                 Use Context.getSystemService(Context.WINDOW_SERVICE) to get one of these.         */          /*             public abstract Object getSystemService (String name)                 Return the handle to a system-level service by name. The class of the returned                 object varies by the requested name. Currently available names are:                  WINDOW_SERVICE ("window")                     The top-level window manager in which you can place custom windows.                     The returned object is a WindowManager.         */          /*             public abstract Display getDefaultDisplay ()                  Returns the Display upon which this WindowManager instance will create new windows.                  Returns                 The display that this window manager is managing.         */          /*             public void getMetrics (DisplayMetrics outMetrics)                 Gets display metrics that describe the size and density of this display.                 The size is adjusted based on the current rotation of the display.                  Parameters                 outMetrics A DisplayMetrics object to receive the metrics.         */         WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);         windowManager.getDefaultDisplay().getMetrics(dm);         int width = dm.widthPixels;         return width;     }      // Custom method to get screen height in pixels using Context object     public static int getScreenHeightInPixels(Context context){         DisplayMetrics dm = new DisplayMetrics();         WindowManager windowManager = (WindowManager) context.getSystemService(WINDOW_SERVICE);         windowManager.getDefaultDisplay().getMetrics(dm);         int height = dm.heightPixels;         return height;     } } 
More android examples

Komentar