Я знаю, что это старый вопрос, но кому-то нравится мой способ решения в чистом CSS. Градиент исчезает слева направо.
.contener{
background-image:url('http://www.imgbase.info/images/safe-wallpapers/digital_art/3d_landscape/9655_3d_landscape.jpg'); width:300px;
height:200px;
background-size:cover;
border:solid 2px black;
}
.ed {
width: 0px;
height: 200px;
background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.75));
position: relative;
opacity:0;
transition:width 20s, opacity 0.6s;
}
.contener:hover .ed{
width: 300px;
background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.75));
position: relative;
opacity:1;
transition:width 0.4s, opacity 1.1s;
transition-delay: width 2s;
animation-name: gradient-fade;
animation-duration: 1.1s;
-webkit-animation-name: gradient-fade; /* Chrome, Safari, Opera */
-webkit-animation-duration: 1.1s; /* Chrome, Safari, Opera */
}
/* ANIMACJA */
@-webkit-keyframes gradient-fade {
0% {background:linear-gradient(to right, rgba(0,0,255,0), rgba(255,0,0,0));}
2% {background:linear-gradient(to right, rgba(0,0,255,0.01875), rgba(255,0,0,0));}
4% {background:linear-gradient(to right, rgba(0,0,255,0.0375), rgba(255,0,0,0.0));}
6% {background:linear-gradient(to right, rgba(0,0,255,0.05625), rgba(255,0,0,0.0));}
8% {background:linear-gradient(to right, rgba(0,0,255,0.075), rgba(255,0,0,0));}
10% {background:linear-gradient(to right, rgba(0,0,255,0.09375), rgba(255,0,0,0));}
12% {background:linear-gradient(to right, rgba(0,0,255,0.1125), rgba(255,0,0,0));}
14% {background:linear-gradient(to right, rgba(0,0,255,0.13125), rgba(255,0,0,0));}
16% {background:linear-gradient(to right, rgba(0,0,255,0.15), rgba(255,0,0,0));}
18% {background:linear-gradient(to right, rgba(0,0,255,0.16875), rgba(255,0,0,0));}
20% {background:linear-gradient(to right, rgba(0,0,255,0.1875), rgba(255,0,0,0));}
22% {background:linear-gradient(to right, rgba(0,0,255,0.20625), rgba(255,0,0,0.01875));}
24% {background:linear-gradient(to right, rgba(0,0,255,0.225), rgba(255,0,0,0.0375));}
26% {background:linear-gradient(to right, rgba(0,0,255,0.24375), rgba(255,0,0,0.05625));}
28% {background:linear-gradient(to right, rgba(0,0,255,0.2625), rgba(255,0,0,0.075));}
30% {background:linear-gradient(to right, rgba(0,0,255,0.28125), rgba(255,0,0,0.09375));}
32% {background:linear-gradient(to right, rgba(0,0,255,0.3), rgba(255,0,0,0.1125));}
34% {background:linear-gradient(to right, rgba(0,0,255,0.31875), rgba(255,0,0,0.13125));}
36% {background:linear-gradient(to right, rgba(0,0,255,0.3375), rgba(255,0,0,0.15));}
38% {background:linear-gradient(to right, rgba(0,0,255,0.35625), rgba(255,0,0,0.16875));}
40% {background:linear-gradient(to right, rgba(0,0,255,0.375), rgba(255,0,0,0.1875));}
42% {background:linear-gradient(to right, rgba(0,0,255,0.39375), rgba(255,0,0,0.20625));}
44% {background:linear-gradient(to right, rgba(0,0,255,0.4125), rgba(255,0,0,0.225));}
46% {background:linear-gradient(to right, rgba(0,0,255,0.43125),rgba(255,0,0,0.24375));}
48% {background:linear-gradient(to right, rgba(0,0,255,0.45), rgba(255,0,0,0.2625));}
50% {background:linear-gradient(to right, rgba(0,0,255,0.46875), rgba(255,0,0,0.28125));}
52% {background:linear-gradient(to right, rgba(0,0,255,0.4875), rgba(255,0,0,0.3));}
54% {background:linear-gradient(to right, rgba(0,0,255,0.50625), rgba(255,0,0,0.31875));}
56% {background:linear-gradient(to right, rgba(0,0,255,0.525), rgba(255,0,0,0.3375));}
58% {background:linear-gradient(to right, rgba(0,0,255,0.54375), rgba(255,0,0,0.35625));}
60% {background:linear-gradient(to right, rgba(0,0,255,0.5625), rgba(255,0,0,0.375));}
62% {background:linear-gradient(to right, rgba(0,0,255,0.58125), rgba(255,0,0,0.39375));}
64% {background:linear-gradient(to right,rgba(0,0,255,0.6), rgba(255,0,0,0.4125));}
66% {background:linear-gradient(to right, rgba(0,0,255,0.61875), rgba(255,0,0,0.43125));}
68% {background:linear-gradient(to right, rgba(0,0,255,0.6375), rgba(255,0,0,0.45));}
70% {background:linear-gradient(to right, rgba(0,0,255,0.65625), rgba(255,0,0,0.46875));}
72% {background:linear-gradient(to right, rgba(0,0,255,0.675), rgba(255,0,0,0.4875));}
74% {background:linear-gradient(to right, rgba(0,0,255,0.69375), rgba(255,0,0,0.50625));}
76% {background:linear-gradient(to right, rgba(0,0,255,0.7125), rgba(255,0,0,0.525));}
78% {background:linear-gradient(to right, rgba(0,0,255,0.73125),,rgba(255,0,0,0.54375));}
80% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.5625));}
82% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.58125));}
84% {background:linear-gradient(to right, rgba(0,0,255,0.75),rgba(255,0,0,0.6));}
86% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.61875));}
88% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.6375));}
90% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.65625));}
92% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.675));}
94% {background:linear-gradient(to right, rgba(0,0,255,0.75),rgba(255,0,0,0.69375));}
96% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.7125));}
98% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.73125),);}
100% {background:linear-gradient(to right, rgba(0,0,255,0.75), rgba(255,0,0,0.75));}
}
<div class="contener" style="">
<div class="ed"></div>
</div>
Обновите ваш list_item_distribuidor.xml ниже одного
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgListaProdutos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_acai"
android:layout_marginLeft="8dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="@+id/imgListaProdutos"
/>
<ImageView android:id="@+id/imgListaStar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
и свой класс ItemAdapter.java ниже одного
package com.pedido.meu.telas_meu_pedido;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter
{
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar)
{
this.context = context;
this.listaId = listaId;
this.listaNome=listaNome;
this.listaStar=listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList)
{
this.context=listaProdutosActivity;
this.listaId=idImages;
this.listaNome=nameList;
}
@Override
public int getCount()
{
return listaNome.size();
}
@Override
public Object getItem(int position)
{
return listaNome.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
}
ImageView img = convertView.findViewById(R.id.imgListaProdutos);
TextView tv = convertView.findViewById(R.id.txtListItemProduto);
ImageView imgStar = convertView.findViewById(R.id.imgListaStar);
img.setImageResource(listaId.get(position));
tv.setText(listaNome.get(position));
imgStar.setImageResource(listaStar.get(0));
return convertView;
}
}
вы не устанавливали изображение, дайте мне знать, если оно работала
В вашем XML и адаптере есть проблема. Во-первых, добавьте идентификатор в XML этого второго изображения, я полагаю, звездное изображение.
list_item_distribuidor.xml
<ImageView
android:id="@+id/imgListStars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_star_round"
android:layout_alignParentTop="@+id/imgListaProdutos"
android:layout_marginLeft="30dp"
/>
Затем в ItemAdapter.java инициализируйте его по ID и установите его значение из списка . Так же, как вы делаете с другим (грузовиком) изображения.
ImageView imgStar = convertView.findViewById(R.id.imgListStars);
imgStar.setImageResource(listaStar.get(position));
Полный функциональный код
ListaDistribuidoresActivity.java
package com.pedido.meu.telas_meu_pedido.controller;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import com.pedido.meu.telas_meu_pedido.R;
import com.pedido.meu.telas_meu_pedido.adapter.ItemAdapter;
import java.util.ArrayList;
public class ListaDistribuidoresActivity extends AppCompatActivity {
ItemAdapter adapter;
ArrayList<Integer> idImages;
ArrayList<String> nameList;
ArrayList<Integer> starImage;
int ids[]={R.mipmap.ic_distribuidor};
String names[]={"DISTRIBUIDOR"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_distribuidores);
ListView listViewDistribuidores = findViewById(R.id.txtListViewDistribuidores);
Spinner spinner = findViewById(R.id.spinnerCategoria);
ArrayAdapter<CharSequence> adapterSpinner = ArrayAdapter.createFromResource(ListaDistribuidoresActivity.this, R.array.category_array, android.R.layout.simple_spinner_dropdown_item);
adapterSpinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterSpinner);
idImages = new ArrayList<>();
idImages = getList();
starImage = new ArrayList<>();
starImage = getListStar();
nameList = new ArrayList<>();
nameList = getNameList();
ItemAdapter adapter = new ItemAdapter(ListaDistribuidoresActivity.this, idImages,nameList, starImage);
listViewDistribuidores.setAdapter(adapter);
listViewDistribuidores.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Toast.makeText(ListaDistribuidoresActivity.this, "Distribuidor " + nameList.get(position) + "selecionado", Toast.LENGTH_SHORT).show();
}
});
}
private ArrayList<Integer> getListStar()
{
starImage = new ArrayList<>();
starImage.add(R.mipmap.ic_star_round);
return starImage;
}
private ArrayList<String> getNameList()
{
nameList = new ArrayList<>();
nameList.add("DISTRIBUIDOR 1");
nameList.add("DISTRIBUIDOR 2");
nameList.add("DISTRIBUIDOR 3");
nameList.add("DISTRIBUIDOR 4");
return nameList;
}
private ArrayList<Integer> getList()
{
idImages = new ArrayList<>();
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
idImages.add(R.mipmap.ic_distribuidor);
return idImages;
}
}
Imagem.java
[111 ]ItemAdapter.java
package com.pedido.meu.telas_meu_pedido.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.pedido.meu.telas_meu_pedido.controller.ListaProdutosActivity;
import com.pedido.meu.telas_meu_pedido.R;
import java.util.ArrayList;
public class ItemAdapter extends BaseAdapter {
private Context context;
private ArrayList<Integer> listaId;
private ArrayList<String> listaNome;
private ArrayList<Integer> listaStar;
public ItemAdapter(Context context, ArrayList<Integer> listaId, ArrayList<String> listaNome, ArrayList<Integer> listaStar) {
this.context = context;
this.listaId = listaId;
this.listaNome = listaNome;
this.listaStar = listaStar;
}
public ItemAdapter(ListaProdutosActivity listaProdutosActivity, ArrayList<Integer> idImages, ArrayList<String> nameList) {
this.context = listaProdutosActivity;
this.listaId = idImages;
this.listaNome = nameList;
}
@Override
public int getCount() {
return listaNome.size();
}
@Override
public Object getItem(int position) {
return listaNome.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int view = 0;
if (convertView == null)
{
if(view == R.layout.list_item_produtos)
{
convertView = View.inflate(context, R.layout.list_item_produtos, null);
ImageView imgProducts = convertView.findViewById(R.id.imgListItemProduto);
TextView textViewProducts = convertView.findViewById(R.id.txtListItemProduto);
imgProducts.setImageResource(listaId.get(position));
textViewProducts.setText(listaNome.get(position));
}
else
{
convertView = View.inflate(context, R.layout.list_item_distribuidor, null);
ImageView imgDistributor = convertView.findViewById(R.id.imgStarDistributor);
TextView textDistribuidor = convertView.findViewById(R.id.txtDistribuidor);
imgDistributor.setImageResource(listaStar.get(0));
textDistribuidor.setText(listaNome.get(position));
}
}
return convertView;
}
}
activity_lista_distribuidores.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.pedido.meu.telas_meu_pedido.controller.ListaDistribuidoresActivity"
>
<ImageView
android:id="@+id/imgTitleListDistributor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_distribuidor"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:contentDescription="@string/txtTitleListaDistribuidores"
/>
<TextView
android:id="@+id/txtTitleDistributor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/txtTitleListaDistribuidores"
android:gravity="center"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:textSize="14pt"
android:layout_marginTop="15dp"
android:layout_marginBottom="20dp"
/>
<Spinner
android:id="@+id/spinnerCategoria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="15dp"
/>
<ListView
android:id="@+id/txtListViewDistribuidores"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
list_item_distribuidor.xml [ 1110]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ImageView
android:id="@+id/imgListaDistribuidor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="@mipmap/ic_distribuidor"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
/>
<TextView
android:id="@+id/txtDistribuidor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginStart="122dp"
android:layout_marginLeft="122dp"
android:layout_marginRight="-150dp"
android:textStyle="bold"/>
<ImageView
android:id="@+id/imgStarDistributor"
android:layout_width="20dp"
android:layout_height="20dp"
android:background="@mipmap/ic_star_round"
android:layout_marginLeft="295dp"
android:layout_marginTop="35dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4.2"
android:layout_marginLeft="320dp"
android:layout_marginTop="35dp"
android:textStyle="bold"
/>
</RelativeLayout>
Используйте эту библиотеку:
implementation 'com.squareup.picasso:picasso:2.5.2'
и сделайте это в адаптере :
ImageView img = convertView.findViewById(R.id.imgListItemProduto);
Picasso.with(context).load(listaId.get(position)).into(img);