텍스트 보기 - 텍스트 크기를 프로그래밍 방식으로 설정하면 작동하지 않는 것 같습니다.
저는 2개의 에뮬레이터(2.2 및 3.0)에서 테스트하는 Eclipse Indigo를 사용하고 있습니다.
아래의 코드는 내가 지금 테스트하고 있는 것을 보여주지만, 텍스트 크기를 설정하면 에뮬레이터를 실행하려고 할 때 화면에 아무것도 나타나지 않습니다. (내가 텍스트 크기를 설명하면 텍스트가 빨간색으로 표시됩니다.)저는 이클립스가 코드를 재구성하는 것이 아니라고 생각했지만 파란색 배경을 추가하기 위해 코드 줄을 추가했고 그것이 작동했습니다.텍스트를 설정한 후 텍스트 크기를 설정해 보았지만 여전히 성공하지 못했습니다.코드는 아래와 같습니다.도와주셔서 감사합니다! (웃음) - 저는 xml을 멀리하려고 노력하고 있습니다.이미 자바를 알고 있기 때문에 그것에 의존하고 싶지 않습니다.
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class TestAndroidvs2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView text = new TextView(this);
text.setTextColor(Color.RED);
text.setTextSize(2);
text.setBackgroundColor(Color.BLUE);
text.setText("Hello Android");
setContentView(text);
}
}
방법TextView.setTextSize(int unit , float size);
두 개의 매개 변수를 사용합니다.
사용해 보십시오.
text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14);
업데이트: 이제setTextSize(float size)
텍스트 크기를 "" 단위로 scaled pixel
자동 설정합니다.COMPLEX_UNIT_SP를 수동으로 언급할 필요가 없습니다.설명서를 참조하십시오.
이것으로 저는 그 문제를 해결했습니다.모든 기기에서 글꼴 크기가 균일합니다.
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font));
현재의,setTextSize(float size)
메소드는 잘 작동하므로 텍스트 크기를 변경하기 위해 다른 메소드를 사용할 필요가 없습니다.
안드로이드의위젯TextView.java 소스 코드
/**
* Set the default text size to the given value, interpreted as "scaled
* pixel" units. This size is adjusted based on the current density and
* user font size preference.
*
* <p>Note: if this TextView has the auto-size feature enabled than this function is no-op.
*
* @param size The scaled pixel size.
*
* @attr ref android.R.styleable#TextView_textSize
*/
@android.view.RemotableViewMethod
public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}
사용 예제
textView.setTextSize(20); // set your text size = 20sp
텍스트 크기 2는 사실상 보이지 않습니다.적어도 14개로 해보세요.참고로 xml을 사용하면 많은 장점이 있으며 'Hello World'보다 더 복잡한 작업을 수행해야 하는 경우에는 생활을 더 쉽게 할 수 있습니다.
내 경우 사용된 방법:
public static float pxFromDp(float dp, Context mContext) {
return dp * mContext.getResources().getDisplayMetrics().density;
}
여기서 TextView의 텍스트 크기를 프로그래밍 방식으로 설정합니다.
textView.setTextSize(pxFromDp(18, YourActivity.this));
계속 즐기기:)
코드의 텍스트 크기 설정에 대한 자세한 내용은 이 링크를 참조하십시오.기본적으로 다음과 같습니다.
public void setTextSize(단위 내, 플로트 크기)
시작: API 레벨 1 기본 텍스트 크기를 지정된 단위와 값으로 설정합니다.가능한 차원 단위는 유형 값을 참조하십시오.관련 XML 속성
Android:textSize 매개 변수
unit 원하는 치수 단위.
size 원하는 단위의 크기입니다.
코틀린에서는 이렇게 간단하게 사용할 수 있습니다.
textview.textSize = 20f
자동 텍스트 크기 조정을 비활성화하기 전까지는 아무 것도 작동하지 않았습니다.
if (Build.VERSION.SDK_INT >= 26) {
textView.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_NONE)
}
setTextSize(TypedValue.COMPLEX_UNIT_SP, textSizeInSp)
다음을 사용하여 텍스트 크기를 설정할 수 있습니다.setTextSize
방법.
TextView.setTextsize(12);
언급URL : https://stackoverflow.com/questions/6998938/textview-setting-the-text-size-programmatically-doesnt-seem-to-work
'programing' 카테고리의 다른 글
도커: 이미 만든 컨테이너에 다시 시작 정책 추가 (0) | 2023.08.13 |
---|---|
MariaDB Java Client 1.5.7이 JDBC 4.2와 호환됩니까? (0) | 2023.08.13 |
mariadb Regexp 저장 프로시저에서 때때로 빈 상태로 반환됩니다. (0) | 2023.08.13 |
구문 오류:예기치 않은 토큰 함수 - 비동기 대기 노드js (0) | 2023.08.08 |
Python 구조의 메모리 내 크기 (0) | 2023.08.08 |