Pergunta sobre image, gridview, android, glow – como fazer efeito de brilho nas minhas imagens?

2

Eu criei o aplicativo gridview simples. Agora eu desejo criar um efeito de brilho para minhas imagens, por favor me ajude como criar um efeito de brilho para minhas imagens de visão gird? Se alguém souber por favor me dê alguma idéia e código de exemplo ....

Esta é a minha imagem atual:

E esta é a minha captura de tela de efeito de brilho esperada:

Código fonte:

main.xml:

<code><?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
<GridView 
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center" />
</LinearLayout>
</code>

GridviewExampleActivity.java

<code>public class GridviewExampleActivity extends Activity
{

public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this));
}

public class ImageAdapter extends BaseAdapter{
private Context mContext;

public ImageAdapter(Context c){
mContext = c;
}

public int getCount()
{

    return mThumbIds.length;
 }

public Object getItem(int position)
{ 
    return null;

}

public long getItemId(int position)
{
return 0;
                                }
// create a new ImageView for each item referenced by the Adapter

public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;

if (convertView == null)
{
 imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
}
else
{
imageView = (ImageView) convertView;
                                                }
imageView.setImageResource(R.drawable.icon);

return imageView;
                                }
private Integer[] mThumbIds = {
        R.drawable.icon, R.drawable.icon,
        R.drawable.icon, R.drawable.icon,
        R.drawable.icon, R.drawable.icon,
        R.drawable.icon, R.drawable.icon,
        R.drawable.icon, R.drawable.icon};
}   

}
</code>

tiro de tela de efeito de brilho:! [insira a descrição da imagem aqui] [3]

Sua resposta

2   a resposta
2

ligação... é um seletor personalizado

ou simplesmente você pode usar isso

<code> <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_pressed="true" android:drawable="@drawable/pressedback" />
   <item android:state_focused="true" android:drawable="@drawable/focusedback" />
   <item android:state_selected="true" android:drawable="@drawable/focusedback" />
</selector>
</code>
6

exibição personalizada brilhe

a função getView () do adaptador de imagem deve ser assim:

<code>public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;

if (convertView == null)
{
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8); 
}
else
{
   imageView = (ImageView) convertView;
   Bitmap Image=BitmapFactory.decodeResource(mContext.getResources(),mThumbIds[position]);
        Image=Image.copy(Bitmap.Config.ARGB_8888,true);
        Paint paint=new Paint();
        paint.setDither(true);
        paint.setFilterBitmap(true);
        Bitmap glow=BitmapFactory.decodeResource(mContext.getResources(), R.drawable.glow_image);
        Bitmap bitmap=Bitmap.createBitmap(Image.getWidth(),Image.getHeight(), Config.ARGB_8888);
        Canvas canvas=new Canvas(bitmap);

        canvas.drawBitmap(glow, new Rect(0,0,glow.getWidth(),glow.getHeight()), new Rect(0,0,Image.getWidth(),Image.getHeight()),paint);
        canvas.drawBitmap(Image, new Rect(0,0,Image.getWidth(),Image.getHeight()), new Rect(0+5,0+5,Image.getWidth()-5,Image.getHeight()-5),paint);



        imageView.setImageBitmap(bitmap);


   return imageView;
   }
</code>

R.drawable.glow_image é a imagem png que você pode usar como imagem de efeito de crescimento

Glow.png

Perguntas relacionadas