بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
گرفتن عرض و طول صفحه
با سلام. من عرض و طول صفحه رو اومدم با کد زیر به دست بیارم:
final DisplayMetrics displayMetrics = new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
final float A = displayMetrics.widthPixels;
final float B = displayMetrics.heightPixels;
خروجی که برای ارتفاع بهم داد 1776 بود. می خواستم یک ویو رو جا به جا کنم و بذارم جایی که نصف ارتفاع اونجاست. اما به جای این که بره وسط خیلی میاد پایین.

888 عددیه که نشون دهنده ی نصف ارتفاعه. بالایی هم که مال محور x هاست که اصلا مهم نیست.
سوال من اینه که چرا این اتفاق می افته و من باید چکار کنم که این ویو دقیقا بیفته وسط؟؟؟
0
0
عدد 888 رو منهای یک دوم اندازه ی ویو کنید ببینید درست میشه ؟ (8 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
مشاهده پاسخ صحیح
پاسخ به سوال
Criss
8 سال پیش
+2
0
پاسخ صحیح
private static final int WIDTH = context.getResources().getDisplayMetrics().widthPixels;
private static final int HEIGHT = context.getResources().getDisplayMetrics().heightPixels;
public static int screenHeight() {
return HEIGHT;
}
public static int screenWidth() {
return WIDTH;
}
یک lineqarLayout بزارید MatchParent و Gravity Center مواردتون رو درون addView کنید
پاسخ به سوال
احمد
8 سال پیش
+1
0
اول گرفتن طول و عرض:
public static int getWidth(){
android.view.Display display =G.currentActivity.getWindowManager().getDefaultDisplay();
Point size=new Point();
display.getSize(size);
return size.x;
}
public static int getHeight(){
android.view.Display display =G.currentActivity.getWindowManager().getDefaultDisplay();
Point size=new Point();
display.getSize(size);
return size.y;
}
دوم جابجایی : در لیستنرش میتونی چندتا متد دیگه ovrride کنی مثلا من اینجا درپایان انیمیشن اونا gone کردم
البته توجه کن میتونی حرکت را در محورx(مثال من ) ویا محور y حرکت کنه ... بهتره که به لایه ها در xml وزن بدی(مثال من 0.35) وبا همون وزن ها کار کنی
myView.animate().translationX(getWidth()*0.35f).setDuration(800).setListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
myView.setVisibility(View.GONE);
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .