gpt4 book ai didi

android - 需要为 imageview 调整图像大小

转载 作者:行者123 更新时间:2023-11-29 14:53:55 24 4
gpt4 key购买 nike

我有一个 8 mp 的图像,但它无法显示在 ImageView 上,因为它太大了。我如何使用 BitmapFactory 重新调整它的大小,然后将这个新图像作为 XML 中 ImageView 的源传递?

我的 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<Button
android:id="@+id/select"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select" />

<Button
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Info" />

</LinearLayout>

<ImageView
android:id="@+id/test_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />


</LinearLayout>

我的 Activity :

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView view;

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize=8; //also tried 32, 64, 16
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher, options);
Drawable d = new BitmapDrawable(bmp);

view = (ImageView) findViewById(R.id.test_image_view);
view.setImageDrawable(d);

setContentView(R.layout.main);


}

最佳答案

你不能将它传递到 XML 中

为了什么?加载它,当你需要它。在您的情况下,最好使用 BitmapFactory.Options:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize=16; //image will be 16x smaller than an original. Note, that it's better for perfomanse to use powers of 2 (2,4,8,16,32..).
Bitmap bmp=BitmapFactory.decodeSomething(..., options) //use any decode method instead of this
Drawable d=new BitmapDrawable(bmp);

然后将它设置为您的 ImageView

ImageView iv; //initialize it first, of course. For example, using findViewById.
iv.setImageDrawable(d);

请注意,在使用位图之后(在 ImageView 不再可见之后),您应该回收位图:

bmp.recycle();

关于android - 需要为 imageview 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com