안녕하세요. 안드로이드 입문한지 얼마 안된 새내기입니다.
다름이 아니라
textView에 들어 갈 수 있는 문자열의 총 개수를 구하려고 하는데요
View에 사이즈가 가로200px(dp) * 세로 150px(dp)일 때
폰트사이즈 10dp(sp)로 몇 글자가 들어 갈 수있는지에 대한 질문입니다.
쉽게 생각해서 (가로/폰트사이즈)*(세로/폰트사이즈) 로 될 줄 알았는데
공식이 다른건가요? 아니면 따로 호출해야 할 메소드가 있나요?
작업은 onWindowFocusChanged에서 하고 있습니다.
가입 후 첫 질문드리는 거라 내용이 부족한 부분이 있는 것 같은데..
레이아웃을 공부중에 있어서 꼭 필요합니다 부탁드립니다..
package com.example.sizetest1;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView tv1;
TextView tv2;
TextView tv3;
TextView tv4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView)findViewById(R.id.textview1);
tv2 = (TextView)findViewById(R.id.textview2);
tv3 = (TextView)findViewById(R.id.textview3);
tv4 = (TextView)findViewById(R.id.textview4);
float fWidth, fHeight;
fWidth = getWindowManager().getDefaultDisplay().getWidth();
fHeight = getWindowManager().getDefaultDisplay().getHeight();
tv1.setText("HDPI에서 fullWidth = "+String.format("%.1f", fWidth) +"px , "
+ "fullHeight = "+String.format("%.1f", fHeight)+"px"+ String.format("%n")+
"DIP는 width = "+String.format("%.1f", fWidth/1.5)+"dp , "
+ "height = "+String.format("%.1f", fHeight/1.5)+"dp입니다");
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
float width1 = tv1.getWidth();
float height1 = tv1.getHeight();
float fsize = tv1.getTextSize();
float line1;
tv2.setText("Width = "+String.format("%.1f", width1)+"px , "
+ "Height = "+String.format("%.1f", height1)+"px"+String.format("%n")+
"DIP는 width = "+String.format("%.1f", width1/1.5)+"dp , "
+ "height = "+String.format("%.1f", height1/1.5)+"dp입니다");
tv3.setText("textSize = " + String.valueOf(String.format("%.1f", fsize))+"px, " +
String.valueOf(String.format("%.1f", fsize/1.5))+"sp");
tv4.setText("MainTextView에 들어갈 수 있는 line 당 글자 수는 : " +
String.valueOf(String.format("%.1f", line1=(width1/fsize)*(height1/fsize)) +
"전체 글자 수는 : " + (line1*tv1.getLineCount())));
}
}
에서 tv4.setText부분을 하고 있습니다