Quando eu mudo a imagem programaticamente, ele mostra a nova imagem em cima da imagem antiga que está definida originalmente no arquivo de layout?
Aqui está um snippet do meu arquivo de layout:
<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>
E o código que define o 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);
}
});
o que estou perdendo?
image.setImageResource(R.drawable.icon_dot1);
setBackgroundResource()
:( não removeu a imagem existente antes de usar a nova imagem .. então eu tenho duas imagens colidindo lá.setImageResource()
Funcionou tho :). Mesmo assim ... a postagem me colocou no caminho certo - muito obrigado por ambas as respostas!setImageResource
?ImageView.setImageResource(R.drawable.image);
funcionou para mimUse em XML:
Uso da fonte:
fonte
Resposta curta
Basta copiar uma imagem em sua
res/drawable
pasta e usarDetalhes
A variedade de respostas pode causar alguma confusão. Nós temos
setBackgroundResource()
setBackgroundDrawable()
setBackground()
setImageResource()
setImageDrawable()
setImageBitmap()
Todos os métodos com
Background
em seus nomes pertencem àView
classe, nãoImageView
especificamente. Mas, comoImageView
herda deView
você, também pode usá-los. Os métodos comImage
em seu nome pertencem especificamente aImageView
.Todos os
View
métodos fazem a mesma coisa que os outros (emborasetBackgroundDrawable()
seja obsoleto), então vamos nos concentrar apenas emsetBackgroundResource()
. Da mesma forma,ImageView
todos os métodos fazem a mesma coisa, então vamos nos concentrar apenas emsetImageResource()
. A única diferença entre os métodos é o tipo de parâmetro que você passa.Configuração
Aqui está um
FrameLayout
que contém umImageView
. OImageView
inicialmente não contém nenhuma imagem. (Eu só adicionei oFrameLayout
para poder colocar uma borda em torno dele. Dessa forma, você pode ver a borda doImageView
.)Abaixo iremos comparar os diferentes métodos.
setImageResource ()
Se você usar ImageView's
setImageResource()
, a imagem manterá sua proporção e será redimensionada para caber. Aqui estão dois exemplos de imagens diferentes.imageView.setImageResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
setBackgroundResource ()
Usar View's
setBackgroundResource()
, por outro lado, faz com que o recurso de imagem seja esticado para preencher a view.imageView.setBackgroundResource(R.drawable.sky);
imageView.setBackgroundResource(R.drawable.balloons);
Ambos
A imagem de fundo da View e a imagem da ImageView são desenhadas separadamente, então você pode definir ambas.
fonte
setImageResource
:Sets a drawable as the content of this ImageView. This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using setImageDrawable(Drawable) or setImageBitmap(Bitmap) and android.graphics.BitmapFactory instead.
Eu acho que isso vai te ajudar
fonte
Em seu XML para a visualização da imagem, onde você
android:background="@drawable/thumbs_down
alterou paraandroid:src="@drawable/thumbs_down"
Atualmente, ele está colocando essa imagem como plano de fundo para a visualização e não a imagem real nela.
fonte
Em XML Design
Imagem Drawable via código
Imagem do servidor
fonte
Você pode usar
ou em java java
fonte