개발을 하다보면, 예기치 않게 배경을 두고 그 안에 무언가를(?) 올려야 할 때가 있다.


TextView 든, EditText 든...


내가 지향하는 스타일은 아니다. 난 정상적인 Layout을 XML로 짜서 하는 것을 선호한다.


그렇지만 기획이 그렇지 못할 경우도 다반사다.


그래서 준비한 코드가 바로 아래 코드이다.



               DisplayMetrics metrics = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(metrics);
		DPUtil dputil = DPUtil.getInstance(this);
		
		float density = dputil.getDensity();
		float densityDpi = dputil.getDensityDpi();
		
		int deviceWidth = metrics.widthPixels;
		int deviceHeight = metrics.heightPixels;
				
                //왼쪽에서 24% 이동한 위치
		int w = (int)((float)deviceWidth * 0.24f);

                //상단에서 30% 아래로 이동한 위치
		int h = (int)((float)deviceHeight * 0.3f);
		

                //DPi 에 따른 폰트사이즈 조정
		float font_size = 20f;
		if(densityDpi <= 240.0f)
		{
			font_size = 18f;
		}
 
                //tv 변수는 TextView의 변수. 알아서 판단해서 변경하시면 됩니다.

		//TextSize
		tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size);
				
		//Set Margin
		LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
		params .setMargins(w, h, 0, 0);
		tv.setLayoutParams(std_no_params);

Posted by 자바리즘
,