Screen Density အေၾကာင္း
ေရးတဲ့ App ေတြမွာ Icon အဆင္ေျပေအာင္
===========================
မိတ္ေဆြတို႔ သတိထားမိမွာေပါ့ ... ကိုယ္ေရးတဲ့ app ဟာ ကိုယ့္ဖုန္းမွာေတာ့ အဆင္ေျပေနၿပီး ... အျခား အမ်ဳိးအစားမတူညီတဲ့ဖုန္းနဲ႔လည္းေတြ႕ေရာ ... Icon ေတြႀကီးလို႔ႀကီး ... ေသးလို႔ေသးတဲ့ ... ပံုစံေတြပ်က္ကုန္ပါေလေရာ ... တကယ္က app တည္ေဆာက္ကတည္းက icon တစ္မ်ဳိးထဲမသံုးပဲ ... စနစ္တက် icon မ်ဳိးစံုသံုးမယ္ဆိုရင္ ဖုန္းတိုင္းအတြက္ ကိုယ့္ app ဟာ အဆင္ေျပေနမွာပဲဗ် ... ဒီအတြက္ သတ္မွတ္ခ်က္ေတြရိွေနပါတယ္ ...
Menu Icon ဘယ္အရြယ္ ..
Launcher Icon ဘယ္ပံု ...
Action Bar Icon ဘယ္နည္း ...
Status Bar Icon ဘယ္လို ...
Tab Icon ဘယ္သို႔ ...
Dialog Icon ဘယ္နည္း ...
List View Icon ဘယ္ကဲ့သို႔ ဆိုတဲ့သတ္မွတ္လမ္းၫႊန္ခ်က္ အက်ယ္ကို ဒီမွာ ဖတ္ပါ ...
https://developer.android.com/guide/practices/ui_guidelines/icon_design.html
က်ေနာ္ကေတာ့ ဒီမွာ Launcher icon ကိုပဲ နမူနာထားေျပာပါမယ္ .... က်ေနာ္တို႔ pj ထဲမွာ AIDE ကေန auto တည္ေဆာက္ေပးထားတဲ့ Drawable ေလးမ်ဳိးရိွပါတယ္ ... အဲဒါေတြက ...
hdpi
mdpi
xhdpi
xxhdpi
ဆိုတာေတြပါ .... က်ေနာ္တို႔ရဲ႕ icon ေတြတို႔ ဒီအထဲမွာ လာထည့္ေပးရမွာပါ ... ေလးမ်ဳိးရိွေနတဲ့အတြက္ Resolution မတူညီတဲ့ icon ေလးမ်ဳိးထည့္ရမယ္ဆိုတာသတိျပဳပါ .... ဘယ္ဟာကို ဘယ္အရြယ္ icon သံုးရမလဲဆိုတာ ဒီလိုၾကည့္ပါ ...
Launcher Icons
=============
ldpi (120 dpi) 36 x 36 px
(Low density screen)
mdpi (160 dpi) 48 x 48 px
(Medium density screen)
hdpi (240 dpi) 72 x 72 px
(High density screen)
xhdpi (320 dpi) 96 x 96 px
(Extra-high density screen)
xxhdpi (480 dpi) 144 x 144 px
(Extra-extra-high density screen)
xxxhdpi (640 dpi) 192 x 192 px
(Extra-extra-extra-high density screen)
ဥပမာဗ်ာ ... က်ေနာ့္ဖုန္းက xhdpi အမ်ဳိးအစားျဖစ္ပါတယ္ ... ဒီေတာ့ က်ေနာ့္ဖုန္းမွာ app တစ္ခု install လုပ္တယ္ဆိုတာနဲ႔ ... xhdpi ထဲမွာ ရိွတဲ့ icon က အလုပ္လုပ္ပါတယ္ ... သူရဲ႕ Resolution က 96x96 px ျဖစ္လို႔ ပံုမွန္အရြယ္ သင့္ေတာ္တဲ့ icon အျဖစ္ျမင္ေတြ႕ရမွာပါ ... ဒါကို က်ေနာ္က xhdpi ထဲ 36x36 px ရိွတဲ့ icon ထည့္သံုးလိုက္မယ္ဆိုရင္ က်ေနာ့္ app icon ဟာ က်ေနာ့္ရဲ႕ xhdpi ဖုန္းမွာ ေသးငယ္တဲ့ icon အျဖစ္နဲ႔ ထြက္ေပၚလာမွာပါ ... ထားေတာ့ ... က်ေနာ့္ဖုန္းက xhdpi မို႔ အဆင္ေျပတယ္ထားဦး ... အျခား screen မတူညီတဲ့ဖုန္းေတြမွာေရာ ... အဆင္ေျပႏိုင္ပါ့မလား ... က်ေနာ္ေစာေစာကေျပာခဲ့သလိုေပါ့ ... သက္ဆိုင္ရာ folder ထဲမွာ သက္ဆိုင္ရာ icon ထည့္သြင္းတည္ေဆာက္ခဲ့မယ္ဆိုရင္ေတာ့ အဆင္ေျပတာေပါ့ ...
ကိုယ့္ဖုန္းရဲ႕ Screen Density ကို သိခ်င္ရင္ေတာ့ ဒီ ကုဒ္ေလးသံုးၿပီးၾကည့္လိုက္ပါ ...
main.xml
=========
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="180dp"
android:text="Density Show Here" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Find screen density" />
</RelativeLayout>
MainActivity.java
===============
package com.mycony.mysc2;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button button;
String str;
TextView textview;
float value = 0;
DisplayMetrics displaymetrics;
Activity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button1);
textview = (TextView)findViewById(R.id.textView1);
activity = MainActivity.this;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
displaymetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
value = getResources().getDisplayMetrics().density;
if(value == 0.75){str = "ldpi";}
else if(value == 1.0){str = "mdpi";}
else if(value == 1.5){str = "hdpi";}
else if(value == 2.0){str = "xhdpi";}
else if(value == 3.0){str = "xxhdpi";}
else if(value == 4.0){str = "xxxhdpi";}
else{
str ="Unknow ...";
}
textview.setText("Screen Density = " + String.valueOf(value) +" - "+ str);
}
});
}
}
Comments
Post a Comment