动态代码设置Textview的字体大小,引用Dimen资源

Android TextView深度解析:从基础设置到高级适配与性能优化 在Android应用开发中,UI组件的正确使用是构建良好用户体验的基础。TextView作为最核心的文本显示控件,其内容、字体大小、颜色和背景的设置看似简单,实则涉及移动端开发的多个关键技术领域。理解其工作原理,需要掌握Android资源系统、屏幕适配机制和渲染性能优化等核心概念。通过资源化管理和主题化设计,开发者可以实现文本的国际化支持、深色主题适配以及动态样式切换,这对提升应用的可维护性和用户体验至关重要。在实际工程实践中,合理运用**sp与dp单位**进行字体适配,以及通过**ColorStateLi 阅读详情
xml文件设置Textview字体大小,可直接设置
android:textSize="@dimen/common_font_sw320dp_of_13"

但是通过动态代码设置时,通常会遇到引用Dimen文件失效或者文字大小异常的状况,例如下面这2种方式都不对

tvHaveStockAt.setTextSize(context.getResources().getDimension(R.dimen.common_sw320dp_of_8));
tvHaveStockAt.setTextSize(R.dimen.common_sw320dp_of_8);

正确的方式应该设置TypedValue为sp,然后引用Dimen文件里的想引用的sp数值,如果不设置TypedValue为sp,则文字显示异常过大,应该是将sp转换成了px导致的。有效方式:

tvHaveStockAt.setTextSize(TypedValue.COMPLEX_UNIT_PX,
                    context.getResources().getDimension(R.dimen.common_font_sw320dp_of_9));

或者可以试试将px转换成sp的方式,不过此种方式还暂未测试。

/**  
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)  
     */    
    public  int dipTopx(Context context, float dpValue) {    
        final float scale = context.getResources().getDisplayMetrics().density;    
        return (int) (dpValue * scale + 0.5f);    
    }    
     
    /**  
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp  
     */   
    public int pxTodip(Context context, float pxValue) {    
        final float scale = context.getResources().getDisplayMetrics().density;    
        return (int) (pxValue / scale + 0.5f);    
    }   



Android如何动态调整应用字体大小详解 主要给大家介绍了关于Android如何动态调整应用字体大小的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 立即下载

相关推荐

Python 逆向解析知乎盐选反爬字体,实现内容精准还原

本文详细解析了知乎盐选内容的反爬字体机制,并提供了使用Python逆向解析WOFF字体文件的完整方案。通过fontTools库构建解码字典,实现乱码文本的精准还原,帮助开发者应对动态字体策略,同时强调法律与道德风险。

weixin_29268385的博客 1295

android 动态修改资源,Android如何动态修改Manifest文件

修改manifest文件Android Manifest.xml,添加相应的声明。在这里,我们需要将新定义的活动PrefsActivity注册到manifest文件。同前面一样,在Eclipse中打开AndroidManifest.xml文件会默认进入Eclipse提供的图形化编辑界面。单击Application选项卡,然后在Application节点之下,选择Add→Activity,输入名字为...

weixin_39909001的博客 590

使用VIVADO 2019.1 搭建以太网接口

以太网 MAC+SGMII->GMII接口转换 以FPGA V7为例,搭建一个千兆以太网接口。运行环境为Vivado2019.1。板卡的FPGA V7与千兆网口芯片采用SGMII互联,最终实现FPGA与上位机之间的千兆网卡通信,实际实现时,V7采用MAC + GMII ->SGMII的结构。SGMII接口使用1G/2.5G Ethernet PCS/PMA or SGMII ip核,MAC层使用Tri Mode Ethernet MAC ip核。 由于MAC层IP不支持SGMII接口,因此需要G

qq_44641513的博客 8414

android自动生成dimens适配文件,无需Java工具类

** android自动生成dimens适配文件 ** 在编写ui界面时因为手机分辨率大小不同,所以展现出来的效果也是不同的,这个时候就需要考虑适配器,让根据手机分辨率自动适配相应尺寸来展示界面,可以提高用户的体验感。 1.首先安装插件ScreenMatch,安装成功之后android studio会提示重启 2.在res->values下创建一个dimens文件,将以下代码复制进去。如果...

weixin_45407364的博客 3114

Crazyflie 2.1固件刷写与地址配置全攻略:从开箱到连接Crazyswarm

本文详细介绍了Crazyflie 2.1微型无人机的固件刷写、地址配置及与Crazyswarm系统的集成方法。从开箱检查到多机协同飞行,涵盖了硬件准备、固件刷写、无线电地址修改等关键步骤,帮助用户快速实现集群飞行控制。特别针对Crazyswarm系统集成提供了实用配置示例和调试技巧。

weixin_42530458的博客 405

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

安卓代码中获取dimen设置字体大小setTextSize,会变得比dimen的值还大——解决方法

背景 holder.tvMsgContent.setTextSize(mContext.getResources().getDimensionPixelOffset(R.dimen.message_content_font));<dimenname="message_content_font">32px</dimen>实际效果: 上面第一句java代码,设置...

Skyf 1万+

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 38

Android中TabLayout修改字体大小

TabLayout的默认字体大小有点小,无法满足项目的要求,如图所示: 字体过小,虽然TabLayout提供了修改字体大小的相关属性,但改起来有点拐弯抹角,下面就来看看它是如何修改的: &lt;android.support.design.widget.TabLayout android:id="@+id/tabs" android:lay...

zhang1223665986的博客 2057

复旦微FMSH_Procise安装全流程详解:从环境配置到实战避坑指南

通过本文的全流程解析+实战技巧,开发者可快速掌握Procise在复旦微芯片开发中的核心应用。未来随着AKConv轻量级架构(参考往期文章)等创新技术的融入,国产芯片开发生态将更加完善。立即关注本专栏,获取最新多镜像切换指南与Linux SDK实战教程!扩展阅读复旦微在线升级BOOT.BIN全解析H7-TOOL实现复旦微脱机烧录(注:本文实验环境为Windows 10 x64 + FMQL45T-CORE开发板,部分操作可能因版本更新调整)立即行动下载本文配套配置文件:[GitHub链接]加入技术交流群。

QQ_778132974的博客 3235

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py)

【华为OD机试真题E卷】514、学生方阵 | 机试真题+思路参考+代码分析(E卷复用)(C++、Java、Py) 题目描述 学校组织活动,将学生排成一个矩形方阵 请在矩形方阵中找到最大的位置相连的男生数量 这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的 注:学生个数不会超过10000

KJ.JK 2492

android项目从零开始 将TextView设置根据dimens.xml中值设置字体大小

在xml资源文件中能直接根据控件属性设置字体大小,那怎么在代码中动态设置字体大小呢? 从TextView的源码中可以看到,setTextSize 方法默认设置进去的是 sp  而从资源文件中读取到数据的方法是 getResources().getDimensionPixelSize 拿到的是px 有两种解决方案 1.转换回sp TextView mNa

mxthing的专栏 1186

STM32实战开发(66):STM32图像处理开发教程

随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。

2201_76125393的博客 1444

Android代码中设置字体大小,字体颜色,显示两种颜色汇总

Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 &lt;TextView android:id="@+id/uppaid_time" android:layout_width="wrap_content" android:layout_height="wrap_content" ...

heishuai123的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TextView通过获得dimens.xml中定义的大小来动态设置字体大小

                      Android动态设置字体大小 结论: Android中并不提供直接从dimens.xml获取dp/sp数值的方法,通过getDimensionPixelSize() getDimension() getDimensionPixelOffset()获取的值是经过处理的。所以正确地动态设置TextView字体大小的姿势应该是: int dimen ...

dawnZeng的博客 1491

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TextView之动态设置字体大小

mxxxtv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.d40));

七月的南方博客 4435

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

android开发手机字体大小设置,安卓代码动态设置字体大小

//给一个id为name的TextView设置字体大小TextView mName = (TextView)findViewById(R.id.name);mName.setTextSize(22);开始学Android的时候,设置字体大小,无非用上面的代码。写的非常舒服,都不知道22用的是什么单位,字体太小,数字改大点,字体太大,数字改小点。Android编写多了,想要读dimens里设置的22...

weixin_30975527的博客 1483

如何在代码中动态设置字体大小

//给一个id为name的TextView设置字体大小  TextView mName = (TextView)findViewById(R.id.name); mName.setTextSize(22); 开始学Android的时候,设置字体大小,无非用上面的代码。写的非常舒服,都不知道22用的是什么单位,字体太小,数字改大点,字体太大,数字改小点。Android编写多了,想要读dimens...

weixin_34409357的博客 494

Android代码动态设置字体大小

//给一个id为name的TextView设置字体大小  TextView mName = (TextView)findViewById(R.id.name);  mName.setTextSize(22);  开始学Android的时候,设置字体大小,无非用上面的代码。写的非常舒服,都不知道22用的是什么单位,字体太小,数字改大点,字体太大,数字改小点。Android编写多了,想要读d

smilesea1988的专栏 2518

textView——在代码中动态设置setTextSize,单位为dp

size=15dp mTv2.setTextColor(mContext.getResources().getColor(R.color.color_a2a2a2)); mTv2.setTextSize(mContext.getResources().getDimension(R.dimen.space_7));

chuntiandejiaobu10的专栏 5763

android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...

Android代码中设置字体大小,字体颜色,显示两种颜色在xml文件中字体大小用的像素android:id="@+id/uppaid_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/title"android:layout_centerHor...

weixin_30387211的博客 1477

安卓代码动态设置字体大小

//给一个id为name的TextView设置字体大小  TextView mName = (TextView)findViewById(R.id.name);  mName.setTextSize(22);  开始学Android的时候,设置字体大小,无非用上面的代码。写的非常舒服,都不知道22用的是什么单位,字体太小,数字改大点,字体太大,数字改小点。Android编写多了,想要读d

smilesea1988的专栏 1511

浅扒Android动态设置字体大小

说点废话 Android开发中,TextView类的控件应该说是很常用了。一般来说我们是通过android:textSize="20sp" 来设置字体大小,但是很多时候也需要动态设置字体大小,调用也很简单: textView.setTextSize(textSize); 为了适配各种各样的型号,我们一般会将...

weixin_34102807的博客 418

Android设置全局字体大小,实现小中大字体功能

很多app有这种需求,实现字体小中大字体设置,仿照QQ的字体。经过测试,下面代码完美实现,需要重启APP才能生效。 上核心代码 public class MainActivity extends Activity { @InjectView(R.id.btn_skip1) Button btnSkip1; @InjectView(R.id.btn_skip2) Button btnS...

爱上网的大花猫 8944

Android 逻辑代码动态设置资源文件属性

#Android 逻辑代码动态设置资源文件属性 ##需求 : 使用Java逻辑代码动态设置资源文件属性包括字体大小、颜色、控件大小的设置、px-dp转换以及横竖屏切换。 逻辑代码: 如下 public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView...

qq_36158551的博客 1625
上一篇: scrollview嵌套ExpandableListView、ListView导致显示高度不全
hs_73
博客等级 码龄11年 3粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值