我正在开发一个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>
在此图片中,我将点击BookedOn布局。
我的targetSdkVersion 25
我已经尝试了多种方式,因为我评论但图像图标不是 反映在imageView上。任何帮助都会很明显。谢谢。
答案 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>