gpt4 book ai didi

java - ImageView 将可见性从消失更改为可见后不显示图像

转载 作者:行者123 更新时间:2023-12-02 06:51:30 25 4
gpt4 key购买 nike

我有这个 ImageView:

<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:id="@+id/formSuggestionScroll">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".SuggestQuestionActivity"
android:orientation="vertical"
android:scrollbars="vertical"
android:background="@android:color/black">

<Button
android:id="@+id/btnOpenGallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/suggest_btnOpenGallery"
android:onClick="btnOpenGallery_click"
android:textColor="@android:color/white"
android:paddingTop="@dimen/buttons_paddingTop"/>

<ImageView
android:id="@+id/selectedPicContainer"
android:layout_width="@dimen/imagen_dimen_width"
android:layout_height="@dimen/imagen_dimen_height"
android:layout_marginTop="@dimen/image_padding"
android:adjustViewBounds="true"
android:layout_gravity="center_horizontal"
android:visibility="gone"/>

<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/suggest_send"
android:onClick="btnSend_click"
android:textColor="@android:color/white"
android:paddingTop="@dimen/buttons_paddingTop"/>

</LinearLayout>

我想在用户选择图像形式库后使其可见:

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch(requestCode){

case SELECT_PHOTO:
if(resultCode == RESULT_OK){

ImageView view = (ImageView) findViewById(R.id.selectedPicContainer);


imageUri = data.getData();
Bitmap galleryPic = scaleBitmap(getPathFromUri(imageUri), view.getHeight());

if(galleryPic != null){
view.setImageBitmap(galleryPic);
view.setVisibility(View.VISIBLE);
}else{
Toast toast = Toast.makeText(this, "selection failed", Toast.LENGTH_LONG);
toast.show();
}
}
break;
}

}

scaleBitmap函数代码:

private Bitmap scaleBitmap(String imagePath, int maxDimension) {

Bitmap scaledBitmap;

BitmapFactory.Options op = new BitmapFactory.Options();

op.inJustDecodeBounds = true;
scaledBitmap = BitmapFactory.decodeFile(imagePath,op);

if(maxDimension < op.outHeight || maxDimension < op.outWidth){
op.inSampleSize = Math.round(Math.max((float) op.outHeight / (float) maxDimension,
(float)op.outWidth / (float) maxDimension));
}

op.inJustDecodeBounds = false;
scaledBitmap = BitmapFactory.decodeFile(imagePath,op);

return scaledBitmap;
}

问题在于 ImageView 显示的是彩色方 block ,而不是图片。颜色取决于选择的图像。所以也许渲染有问题,但我对此的了解非常少。

如果我将可见性设置为不可见而不是消失,问题就会消失。

希望有人能帮忙。谢谢

最佳答案

是否 view.getHeight() 为 0,因为它已GONE?所以 scaleBitmap(getPathFromUri(imageUri), view.getHeight()) 可能会将其缩放到 1 像素?

关于java - ImageView 将可见性从消失更改为可见后不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968198/

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