programing

텍스트 보기 - 텍스트 크기를 프로그래밍 방식으로 설정하면 작동하지 않는 것 같습니다.

newsource 2023. 8. 13. 09:45

텍스트 보기 - 텍스트 크기를 프로그래밍 방식으로 설정하면 작동하지 않는 것 같습니다.

저는 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