ImageView背景未设置多次

时间:2017-12-22 04:54:55

标签: android android-imageview android-studio-3.0

  

我正在开发一个Android项目,我需要在其中设置ImageView   背景(升序图标和降序图标)多次。去做   我正在使用点击变量这样做:

sortBookedOnLayout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        pickUpImage.setBackgroundResource(R.drawable.ascending);
                        vouchredImage.setBackgroundResource(R.drawable.ascending);
                        cancledImage.setBackgroundResource(R.drawable.ascending);
                        if(Constant.bookedOn == 1) {
                            Log.d(TAG, "FliteronClick:1 ");
                            bookedonImage.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ascending_active));
//                            int ascending_active_b = R.drawable.ascending_active;
//                            bookedonImage.setBackgroundResource(ascending_active_b);
//                            bookedonImage.setImageDrawable(mContext.getResources().getDrawable( R.drawable.ascending_active));
                          //  bookedonImage.setBackground(mContext.getResources().getDrawable(R.drawable.ascending_active));
//                            ivPickUpTxt.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ascending_active, 0);
                            Constant.bookedOn = 2;
                        }else if(Constant.bookedOn == 2){
                            Log.d(TAG, "FliteronClick:2 ");
                            bookedonImage.setImageDrawable(mContext.getResources().getDrawable(R.drawable.decending_active));
 //                           bookedonImage.setImageResource(android.R.color.transparent);
//                            int decending_active_b = R.drawable.decending_active;
//                            bookedonImage.setBackgroundResource(decending_active_b);
//                            bookedonImage.setImageDrawable(mContext.getResources().getDrawable( R.drawable.decending_active));
//                            ivPickUpTxt.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.decending_active, 0);

                            Constant.bookedOn = 1;
                        }
                        }
                    }
                });
  

我的Xml布局就像:

<LinearLayout
    android:id="@+id/sortBookedOnLayout"
    android:orientation="horizontal"
    android:background="@color/white"

    android:weightSum="2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_weight="1.8"
        android:layout_width="0dp"
        android:layout_height="match_parent">
        <RelativeLayout
            android:id="@+id/bookedOntxtLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TextView
            android:id="@+id/ivPickUpTxt"
            style="@style/editTextTheme"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/edittext_background"
            android:drawableLeft="@drawable/cal2"
            android:drawablePadding="10dp"
            android:hint="@string/booked_on"
            android:inputType="text"
            android:maxLines="1"
            android:padding="10dp"
            android:textColor="#000000"
            android:textCursorDrawable="@drawable/cursor_drawable"
            android:textSize="@dimen/filter_text_size"

            />
        </RelativeLayout>
    </LinearLayout>
        <LinearLayout
            android:layout_weight=".2"
            android:layout_width="0dp"
            android:layout_height="match_parent">

    <ImageView
        android:id="@+id/booedOnImage"
        android:scaleType="fitXY"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ascending"

        />

    </LinearLayout>

</LinearLayout>

我的布局截图。enter image description here

在此图片中,我将点击BookedOn布局。

  

我的targetSdkVersion 25

     

我已经尝试了多种方式,因为我评论但图像图标不是   反映在imageView上。任何帮助都会很明显。谢谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

qImageView.setBackgroundResource(R.drawable.thumbs_down);

并添加android:scaleType:fitxy

<ImageView
            android:id="@+id/booedOnImage"    
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="fitxy"
            android:background="@drawable/ascending"/>

(或)以编程方式尝试

 imgview.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

Here's一个线程,讨论两种方法之间的差异。

我了解您的问题...您没有设置 LinearLayout 宽度

 <LinearLayout
            android:layout_weight=".2"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="match_parent">

            <ImageView
                android:id="@+id/booedOnImage"

                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/abc_btn_rating_star_off_mtrl_alpha"

                />

        </LinearLayout>