태그 보관물: imageview

imageview

Android에서 프로그래밍 방식으로 ImageView의 이미지 변경 android:layout_height=”39dp”

프로그래밍 방식으로 이미지를 변경하면 원래 레이아웃 파일에 설정된 이전 이미지 위에 새 이미지가 표시됩니까?

다음은 내 레이아웃 파일의 일부입니다.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="39dp"
    android:gravity="center_vertical" >
    <ImageView
        android:id="@+id/qStatusImage"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:layout_margin="5dp"
        android:background="@drawable/thumbs_down"
         />

    <TextView
        android:id="@+id/grp_child"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:textColor="@color/radio_colors"
        android:textStyle="normal"
        android:background="@color/grey"
    />

 </LinearLayout>

그리고 imageView를 설정하는 코드 :

     @Override
public View getChildView(final int groupPosition, final int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
//Answers
            if(answersGroup != null)
                   answersGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                       @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {

                         //  int index = answersGroup.indexOfChild(findViewById(answersGroup.getCheckedRadioButtonId()));

                           qImageView = (ImageView) V.findViewById(R.id.qStatusImage);
                           if(ans ==0 || ans == 5){
                            //   qSV.setImageResource(0);
                               qImageView.setImageResource(R.drawable.thumbs_up);
                           }
                           else
                               qImageView.setImageResource(R.drawable.thumbs_down);

                       }
                   });

내가 무엇을 놓치고 있습니까?



답변

ImageView배경 대신 src를 설정하기 때문에 발생 합니다.

대신 사용 :

qImageView.setBackgroundResource(R.drawable.thumbs_down);

다음 은 두 방법의 차이점에 대해 설명하는 스레드입니다.


답변

XML에서 사용 :

android:src="@drawable/image"

소스 사용 :

imageView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.your_image));


답변

짧은 답변

이미지를 res/drawable폴더에 복사하고

imageView.setImageResource(R.drawable.my_image);

세부

다양한 답변으로 인해 약간의 혼란이 발생할 수 있습니다. 우리는

Background이름에 있는 메서드는 모두 구체적이 View아니라 클래스에 속합니다 ImageView. 그러나 ImageView상속 이후에도 View사용할 수 있습니다. Image이름에 있는 메서드 는 특히에 속합니다 ImageView.

View(하지만 방법은 모두 서로 같은 일을 할 setBackgroundDrawable()되지 않습니다) 우리가에 초점을 맞출 것이다, 그래서 setBackgroundResource(). 마찬가지로 ImageView메서드는 모두 동일한 작업을 수행하므로 setImageResource(). 메소드 간의 유일한 차이점은 전달하는 매개 변수 유형입니다.

설정

여기입니다 FrameLayout을 포함하는 ImageView. 는 ImageView처음에에 모든 이미지가 없습니다. (나는 FrameLayout그 주위에 테두리를 놓을 수 있도록를 추가했습니다. 이렇게하면의 가장자리를 볼 수 있습니다 ImageView.)

여기에 이미지 설명 입력

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

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:background="@drawable/border"
        android:layout_centerInParent="true">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </FrameLayout>
</RelativeLayout>

아래에서 다른 방법을 비교합니다.

setImageResource ()

ImageView의를 사용 setImageResource()하면 이미지가 종횡비를 유지하고 크기가 조정됩니다. 다음은 두 가지 다른 이미지 예입니다.

  • imageView.setImageResource(R.drawable.sky);
  • imageView.setImageResource(R.drawable.balloons);

여기에 이미지 설명 입력

setBackgroundResource ()

setBackgroundResource()반면에 View의를 사용 하면 이미지 리소스가 뷰를 채우기 위해 늘어납니다.

  • imageView.setBackgroundResource(R.drawable.sky);
  • imageView.setBackgroundResource(R.drawable.balloons);

여기에 이미지 설명 입력

양자 모두

View의 배경 이미지와 ImageView의 이미지는 별도로 그려 지므로 둘 다 설정할 수 있습니다.

imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);

여기에 이미지 설명 입력


답변

qImageView.setImageResource(R.drawable.img2);

나는 이것이 당신을 도울 것이라고 생각합니다


답변

이미지보기에 대한 XML에서 android:background="@drawable/thumbs_down
이를 다음으로 변경했습니다.android:src="@drawable/thumbs_down"

현재는 그 이미지를 실제 이미지가 아닌보기의 배경으로 배치하고 있습니다.


답변

XML 디자인에서

android:background="@drawable/imagename
android:src="@drawable/imagename"

코드를 통한 드로어 블 이미지

imageview.setImageResource(R.drawable.imagename);

서버 이미지

  ## Dependency ##

  implementation 'com.github.bumptech.glide:glide:4.7.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

  Glide.with(context).load(url) .placeholder(R.drawable.image)
   .into(imageView);

 ## dependency  ##
 implementation 'com.squareup.picasso:picasso:2.71828'

 Picasso.with(context).load(url) .placeholder(R.drawable.image)
 .into(imageView);


답변

당신이 사용할 수있는

val drawableCompat = ContextCompat.getDrawable(context, R.drawable.ic_emoticon_happy)

또는 자바 자바

Drawable drawableCompat = ContextCompat.getDrawable(getContext(), R.drawable.ic_emoticon_happy)