如何在相对布局中调整Textize到ImageView的大小并对齐 - android sdk 10

时间:2017-01-20 14:53:53

标签: android imageview android-relativelayout

我正在玩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);
    
  2. 有没有办法将文字添加到图片资源(ImageView)?

    现在我在TextView中添加了ImageViewRelativeLayout

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

试试这个。 将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);

答案 2 :(得分:0)