Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在相对布局中调整和对齐中心TextView到ImageView-android sdk 10_Android_Imageview_Android Relativelayout - Fatal编程技术网

如何在相对布局中调整和对齐中心TextView到ImageView-android sdk 10

如何在相对布局中调整和对齐中心TextView到ImageView-android sdk 10,android,imageview,android-relativelayout,Android,Imageview,Android Relativelayout,我正在玩AndroidSDK 10(我想支持来自SDK 10的设备) 我不知道如何在Imageview中自动居中文本 我能想到的将文本居中的唯一方法是使用填充,但我不喜欢它,它一定是一个更好的解决方案 从资源调整图像大小无效 InputStream ims = context.getAssets().open("myimage.png"); Drawable d = Drawable.createFromStream(ims, null); d.setBounds(0, 0, (int)(d.g

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

我不知道如何在
Imageview
中自动居中文本

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

  • 从资源调整图像大小无效

    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
    中添加了
    TextView
    ImageView


    创建一组资产图像和文本的最佳做法是什么?这样,当我移动图像时,文本将跟随(居中)

    您可以始终将中心水平规则添加到相对性视图中,使其所有子对象保持水平居中。

    您可以始终将中心水平规则添加到相对性视图中,所以它的所有子对象都保持水平居中。

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

    再加上@Dhananjay Sarsonia的回答,这一次成功了


    结合@Dhananjay Sarsonia的答案,它不起作用,我将用我的部分类更新代码实际上它起作用了,因为第一个问题,bu没有居中。ScaleDrawable没有调整图像的大小。您有什么想法吗?为什么?您可以不使用可缩放的绘图工具,而是添加calculateInSampleSize()和decodeSampledBitmapFromResource(),从中计算所需的图像宽度和高度,并将这些值传递给calculateInSampleSize()。另外,根据您的需要设置ImageView的缩放类型。我会看一看,如果是我需要的,我会选择这个答案。谢谢,它不起作用,我将用我的类的一部分更新代码。实际上它起作用了,因为第一个问题,bu没有集中。ScaleDrawable没有调整图像的大小。您有什么想法吗?为什么?您可以不使用可缩放的绘图工具,而是添加calculateInSampleSize()和decodeSampledBitmapFromResource(),从中计算所需的图像宽度和高度,并将这些值传递给calculateInSampleSize()。另外,根据您的需要设置ImageView的缩放类型。我会看一看,如果是我需要的,我会选择这个答案。非常感谢。