在Android上用Java更改ImageView图像

时间:2014-12-11 13:52:55

标签: android bitmap imageview

以下步骤:

  1. 我动态创建一个ImageView并将其设置为我之前从服务器下载过的位图。通过使用setLayoutParams缩小图像而不改变其实际大小,图像显示为缩略图。我在显示器顶部的主XML布局文件中有一个水平LinearLayout,用这些缩略图填充。想象一下显示器顶部有一排缩略图。 这有效!

  2. 在主XML布局文件中,我在LinearLayout下面有一个更大的ImageView(如上所述),它应该显示我点击的缩略图的大版本。所以我必须设法将缩略图ImageView中的位图分配给更大的ImageView。简单地说这是不可能的:bigImageView = imageViewArray [i];

  3. 请告诉我这项任务是如何完成的?

    以下是主要的XML布局:

    <LinearLayout 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:orientation="vertical"
        tools:context=".GalleryWithBaseadapter"
        android:background="#000000">
    
        <HorizontalScrollView
            android:id="@+id/horizontalContainer"
            android:background="#000000"
            android:layout_width="wrap_content"
            android:layout_height="120dp">
    
            <LinearLayout
                android:orientation="horizontal"
                android:id="@+id/imgLinearLayout"
                android:background="#000000"
                android:layout_gravity="left"
                android:layout_width="wrap_content"
                android:layout_height="match_parent">
    
            </LinearLayout>
    
        </HorizontalScrollView>
    
        <ProgressBar
            android:id="@+id/myProgressBar"
            android:visibility="visible"
            style="?android:attr/progressBarStyleHorizontal"
            android:max="100"
            android:layout_gravity="center_horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <Button
            android:text="Click Me"
            android:onClick="onClickButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <ImageView
            android:id="@+id/bigImage"
            android:padding="4dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
    </LinearLayout>
    

    感谢您的建议!

2 个答案:

答案 0 :(得分:2)

试试这个:

bigImageView.setImageDrawable(imageViewArray[i].getDrawable());

顺便说一句,您应该从文件源设置大图像,并将图像的小缩放版本加载到缩略图列表中,以避免内存问题。

答案 1 :(得分:1)

试试这个:

ImageView bigImage = ...
ImageView[] smallImages = ...


public void setSmallToBig(int positionInSmallArray){
    Drawable d = smallImages[positionInSmallArray].getDrawable();
    bigImage.setDrawableImage(d);
}