在android中无法获取imageView背景图片的尺寸?

时间:2013-11-11 15:46:08

标签: android image bitmap imageview drawingcache

我想使用imgHelpBelow imageView背景图片的尺寸,而不是使用此图片的来源。

这是imgHelpBelow imageView XML:

<ImageView
    android:id="@+id/imgHelpBelow"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/ImageView05"
    android:layout_alignLeft="@+id/imgCaloriesBelow"
    android:layout_alignRight="@+id/imgCaloriesBelow"
    android:layout_marginBottom="19dp"
    android:background="@drawable/bar_fill"
    android:src="@drawable/bar_fill" /> 

以下是代码:

private ImageView imgHelpBelow;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dashboard);

          imgHelpBelow = (ImageView)findViewById(R.id.imgHelpBelow);

          imgHelpBelow.setDrawingCacheEnabled(true);

          imgHelpBelow.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
             MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
          imgHelpBelow.layout(0, 0, imgHelpBelow.getMeasuredWidth(),imgHelpBelow.getMeasuredHeight()); 


    imgHelpBelow.buildDrawingCache(true);
    Bitmap bitmap = Bitmap.createBitmap(imgHelpBelow.getDrawingCache());
    imgHelpBelow.setDrawingCacheEnabled(false); // clear drawing 

          int w = bitmap.getWidth();
    int h = bitmap.getHeight();

          Bitmap croppedBmp1 = Bitmap.createBitmap(bitmap, 0, 0, 120, h);
}

我得到的宽度和高度是图像源而不是imageView背景,其中尺寸应该更大,因此croppedBmp1位图是从图像源创建的,而不是从imageview背景创建的。似乎使用DrawingCache的所有这些过程都不起作用。

图像放在res / drawable-xxhdpi中。也许我应该将图像放在其他可绘制的文件夹中。

我应该添加或更改哪些内容?

请帮帮我......

非常感谢:)

1 个答案:

答案 0 :(得分:0)

这通常与imagesrc尝试输入固定值的大小相同吗?

android:layout_width="wrap_content"
android:layout_height="wrap_content"