Я работаю над настраиваемым классом, чтобы изменить размер макетов из других классов.Android - Получение DisplayMetrics в классе
Вот класс
public class LayoutResize{
Context context;
DisplayMetrics displayMetrics = new DisplayMetrics();
public int width(int sizeX)
{
//((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
//getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
//getResources().getDisplayMetrics();
int screenWidth = displayMetrics.widthPixels * sizeX/100;
Log.d("displayMetrics", "dismet" + displayMetrics);
return screenWidth;
}
public int height(int sizeY)
{
//((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
//getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
//getResources().getDisplayMetrics();
int screenHeight = displayMetrics.heightPixels * sizeY/100;
return screenHeight;
}
}
Раньше я использую класс, как:
DisplayMetrics displayMetrics = new DisplayMetrics();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
LayoutResize layoutResize = new LayoutResize();
RelativeLayout mLayout= (RelativeLayout) findViewById(R.id.mLayout);
int mLayoutWidth = layoutResize.width(90, displayMetrics);
...
}
Чтобы изменить размер mLayout
«s ширина до 90% от размера окна.
I прошло (а) displayMetrics
ценность из всех классов использую LayoutResize
класс из. Используемый, чтобы быть, как это:
public int width(int sizeX, displayMetrics)
{
...
}
Теперь, как видно в LayoutResize
классе, я пытаюсь просто передать значение в процентах.
Я пробовал использовать эти прокомментированные коды, но каждый код возвращает getWindowManager
возвращает значение null .. Что мне здесь не хватает?
HoHoHo это очень помогло! Поэтому я должен создать привычку создавать конструктор для каждого класса как такового, я знал, что это касается основных вещей! Благодаря! –