android动态添加标签,android – 动态添加Textview

在布局文件中,我有以下内容:

android:layout_width="100dp"

android:layout_height="wrap_content" android:layout_marginRight="10dp"

android:text="SYN"

android:textAppearance="?android:attr/textAppearanceMedium"

android:background="@drawable/rectanglepurple"

android:textColor="#000000"

android:gravity="right"/>

我试图使用代码实现以下目标,到目前为止我有:

Resources res = getResources();

Drawable drawable1=res.getDrawable(R.drawable.rectanglepurple);

TextView idText = new TextView(getActivity());

idText.setText("SYN");

idText.setTextAppearance(getActivity(), android.R.style.TextAppearance_Medium);

idText.setTextColor(Color.BLACK);

idText.setGravity(Gravity.RIGHT);

idText.setBackgroundDrawable(drawable1);

我不能锻炼如何处理

android:layout_width="100dp"

android:layout_height="wrap_content" android:layout_marginRight="10dp"

任何帮助赞赏.

解决方法:

这是Android布局的一个有趣部分.以layout_为前缀的XML属性实际上用于包含视图管理器(如LinearLayout或RelativeLayout).所以你需要添加这样的东西:

//convert from pixels (accepted by LayoutParams) to dp

int px = convertDpToPixel(100, this);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(px, LinearLayout.LayoutParams.WRAP_CONTENT);

//convert from pixels (taken by LayoutParams.rightMargin) to dp

px = convertDpToPixel(10, this);

params.rightMargin = px;

idText.setLayoutParams(params);

并且convertDpToPixel(无耻地适应(改为返回int而不是float)从Converting pixels to dp):

/**

* This method converts dp unit to equivalent device specific value in pixels.

*

* @param dp A value in dp(Device independent pixels) unit. Which we need to convert into pixels

* @param context Context to get resources and device specific display metrics

* @return An integer value to represent Pixels equivalent to dp according to device

*/

public static int convertDpToPixel(float dp, Context context) {

Resources resources = context.getResources();

DisplayMetrics metrics = resources.getDisplayMetrics();

int px = (int) (dp * (metrics.densityDpi / 160f));

return px;

}

编辑:将分配更改为rightMargin从10(像素数)更改为变量px(包含10dp中的像素数)whoopsie.

标签:android,android-layout,android-textview

来源: https://codeday.me/bug/20190729/1570877.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值