【问题标题】:how to change textview size into all devices in android如何将textview大小更改为android中的所有设备
【发布时间】:2012-10-09 09:00:41
【问题描述】:

嗨,我正在 android 中为所有尺寸的手机和平板电脑做一个应用程序。图像视图显示在所有尺寸上都很好。但我面临 textview 字体大小的问题。在我的应用程序中,我需要显示带有该背景和文本的 textview,但是不同大小的文本大小显示不正确。任何有想法的人请帮助我。我尝试使用下面的代码...

MainActivity .class

 public class MainActivity extends Activity {
 float screenHeight,screenWidth,screendensity;
 RelativeLayout alpha_page2;
 ImageView alpha_back,alpha_back1;
 TextView option121;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
     screenHeight = displaymetrics.heightPixels;
     screenWidth = displaymetrics.widthPixels;
     screendensity = displaymetrics.densityDpi;
     Log.i("screenHeight",""+screenHeight);
     Log.i("screenWidth",""+screenWidth);
     Log.i("screendensity",""+screendensity);
    setContentView(R.layout.activity_main);

    int letpading=(int)(116*(screenWidth/1024));
    int toppading=(int)(79*(screenHeight/600));

    int textsiz=(int)(50*(screendensity/600));
    option121 = (TextView)findViewById(R.id.text1);
    option121.setBackgroundResource(R.drawable.dog_b_blank);
    option121.setText("A");
    option121.setText(Color.BLACK);
    RelativeLayout.LayoutParams layoutoption121 = (RelativeLayout.LayoutParams) option121.getLayoutParams();       
    layoutoption121.height=(int)(180*(screenHeight/600));  
    layoutoption121.width=(int)(180*(screenWidth/1024));
    layoutoption121.topMargin=(int)(100*(screenHeight/600));
    layoutoption121.leftMargin= (int)(250*(screenWidth/1024));
    option121.setPadding(letpading, toppading, 0, 0);

    option121.setTextSize(textsiz);
    }

}

【问题讨论】:

    标签: android-layout android-emulator


    【解决方案1】:

    那不是这样做的。 Android 会为您处理文本大小,在指定文本大小时使用“sp”(与比例无关的像素)单位,如果您需要为不同的屏幕配置不同的大小,请阅读以下内容:

    Supporting Multiple Screens

    基本上,您需要在相应资源目录中的 .xml 文件中定义文本大小:

    res/values-大 资源/值-xlarge 等等。

    然后在您的布局 xml 或代码中引用这些常量。

    【讨论】:

    • thanku.but 如果我这样做意味着所有尺寸都运行良好,我将在文本 size.in xml 中面临prblm,我将给出 android:textSize="50sp" 表示一种尺寸运行良好。对于其他尺寸,它不起作用
    • 阅读链接。听起来您想为不同的屏幕尺寸指定不同的文本大小,对吗?该链接描述了如何做到这一点。
    • 我也喜欢这样,但我确实得到了你。你有任何其他解决方案,你可以给我打电话
    • 相信我,这就是解决问题的方法。如果您需要更多帮助,请发布您尝试过的内容。
    • 您不应该尝试在运行时根据屏幕大小计算文本大小。这是不必要的,而且非常丑陋。您需要阅读并理解我提供的链接。在特定于屏幕大小的 .xml 文件中定义文本大小,并在代码或 xml 布局中使用这些常量。 Android 会自动为您的屏幕尺寸选择正确的资源文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多