【问题标题】:How to resize and align to center TextView to ImageView in relative layout - android sdk 10如何在相对布局中调整 TextView 的大小并对齐到中心到 ImageView - android sdk 10
【发布时间】:2017-01-20 14:53:52
【问题描述】:

我正在使用 Android SDK 10(我想支持来自 sdk 10 的设备)

我不知道如何将 Imageview 中的文本自动居中。

我能想到的使文本居中的唯一方法是使用填充,但我不喜欢它,它必须是一个更好的解决方案。

  1. 从资产调整图像大小不起作用

    InputStream ims = context.getAssets().open("myimage.png");
    Drawable d = Drawable.createFromStream(ims, null);
    d.setBounds(0, 0, (int)(d.getIntrinsicWidth()*0.5),
    (int)(d.getIntrinsicHeight()*0.5));
    
    ScaleDrawable sd = new ScaleDrawable(d,0,px,py);
    ims.close();
    Image = new ImageView(context);
    Image.setImageDrawable(sd);
    Image.setAdjustViewBounds(true);
    layout.addView(Image);
    
    TextView t = new TextView(this.context);
    t.setText(r.toString());
    t.setTextSize(80);
    t.setGravity(Gravity.CENTER);
    layout.addView(t);
    

有没有办法将文本添加到图片资源 (ImageView) 中?

现在我在RelativeLayout 中添加了TextViewImageView

创建一组资产图像和文本的最佳做法是什么,以便在我移动图像时文本跟随(居中)

【问题讨论】:

    标签: android imageview android-relativelayout


    【解决方案1】:

    您始终可以将 CENTER_HORIZONTAL 规则添加到 RelativeLayout,因此它的所有子级都保持水平居中。

    【讨论】:

      【解决方案2】:

      试试这个。 将 Framelayout 保留为要添加视图的父布局。 现在使用 LayoutParams 来设置 ImageView 的重力、高度和宽度。

        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        layoutParams.gravity = Gravity.CENTER;
        imageView.setLayoutParams(layoutParams);
      

      现在在 FrameLayout 中首先添加 Imageview,然后添加 textview。不要更改 textview 的任何内容。

       frameLayout.addView(imageView);
       frameLayout.addView(text);
      

      【讨论】:

      • 它不起作用,我会用我的部分课程更新代码
      • 实际上它正在工作,由于第一个问题,bu 没有居中。 ScaleDrawable 未调整图像大小。你知道为什么吗?
      • 您可以添加来自link 的calculateInSampleSize() 和decodeSampledBitmapFromResource(),而不是使用Scalable Drawable,计算所需的宽度和所需的高度图像并将这些值传递给calculateInSampleSize()。还可以根据自己的需要设置ImageView的Scaletype
      • 我会看看,如果是我需要的,我会选择这个答案。谢谢
      【解决方案3】:
      猜你喜欢
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多