国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android實(shí)現(xiàn)GridView中ImageView動(dòng)態(tài)變換的方法

2020-04-11 11:23:09
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Android實(shí)現(xiàn)GridView中ImageView動(dòng)態(tài)變換的方法。分享給大家供大家參考。具體如下:

使用YY影音的時(shí)候,發(fā)現(xiàn)點(diǎn)擊GridView的某一個(gè)Item,Item里面的圖標(biāo)會(huì)在按下的時(shí)候發(fā)生變換,變成另外一個(gè)圖片。

自己寫了一個(gè)類似的demo,具體步驟如下:

1、創(chuàng)建一個(gè)包含Grid的Acitity
2、創(chuàng)建item.xml 里面包含一個(gè)imageview和一個(gè)textview
3、自定義一個(gè)adapter,從baseadapter繼承
4、在getView中為每個(gè)imageView添加setOnTouchListener

代碼入下:

MainActivity.javapackage com.mygriddemo;import java.util.ArrayList;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity { /** Called when the activity is first created. */ private GridView gv; @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  gv = (GridView) findViewById(R.id.mygrid);   AddAdapter addadapter = new AddAdapter(this);  gv.setAdapter(addadapter); } public class AddAdapter extends BaseAdapter {  private final LayoutInflater mInflater;  private final ArrayList<ListItem> mItems = new ArrayList<ListItem>();//  public static final int ITEM_SHORTCUT = 0;//  public static final int ITEM_APPWIDGET = 1;//  public static final int ITEM_LIVE_FOLDER = 2;//  public static final int ITEM_WALLPAPER = 3;  /**   * Specific item in our list.   */  public class ListItem {   public final CharSequence text;   public final Drawable image;   //public final int actionTag;   public final Drawable touchimage;   //, int actionTag   public ListItem(Resources res, int textResourceId, int imageResourceId,int touchImageResourceId) {    text = res.getString(textResourceId);    if (imageResourceId != -1) {     image = res.getDrawable(imageResourceId);    } else {     image = null;    }    if (touchImageResourceId != -1) {     touchimage = res.getDrawable(touchImageResourceId);    } else {     touchimage = null;    }   }  }  public AddAdapter(MainActivity launcher) {   super();   mInflater = (LayoutInflater) launcher.getSystemService(Context.LAYOUT_INFLATER_SERVICE);   // Create default actions   Resources res = launcher.getResources();   mItems.add(new ListItem(res, R.string.item1,     R.drawable.item1, R.drawable.item1back));   mItems.add(new ListItem(res, R.string.item2,     R.drawable.item2, R.drawable.item2back));   mItems.add(new ListItem(res, R.string.item3,     R.drawable.item3, R.drawable.item3back));   mItems.add(new ListItem(res, R.string.item4,     R.drawable.item4, R.drawable.item4back));  }  public View getView(int position, View convertView, ViewGroup parent) {   final ListItem item = (ListItem) getItem(position);   if (convertView == null) {    convertView = mInflater.inflate(R.layout.grid_item, parent, false);   }   final TextView textView = (TextView) convertView;//.findViewById(R.id.mygrid);   textView.setTag(item);   textView.setText(item.text);   textView.setCompoundDrawablesWithIntrinsicBounds(null, item.image, null, null);   textView.setOnTouchListener(new OnTouchListener(){    public boolean onTouch(View arg0, MotionEvent arg1) {     // TODO Auto-generated method stub     if (arg1.getAction() == MotionEvent.ACTION_DOWN){      Log.d("WeatherWidget", MotionEvent.ACTION_DOWN+"");      textView.setCompoundDrawablesWithIntrinsicBounds(null, item.touchimage, null, null);     }     else if(arg1.getAction() == MotionEvent.ACTION_UP) {      Log.d("WeatherWidget", arg1.getAction()+"");      textView.setCompoundDrawablesWithIntrinsicBounds(null, item.image, null, null);      Intent i = new Intent(MainActivity.this,Page1Activity.class);      startActivity(i);     }     return true;    }   });   return convertView;  }  public int getCount() {   return mItems.size();  }  public Object getItem(int position) {   return mItems.get(position);  }  public long getItemId(int position) {   return position;  } }}

main.xml代碼:

<?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" ><GridView android:id="@+id/mygrid" android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:numColumns="2"  android:verticalSpacing="10dip" android:horizontalSpacing="10dip" android:stretchMode="columnWidth" android:gravity="center"></GridView></LinearLayout>

griditem.xml代碼:

<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:layout_centerHorizontal="true"  android:drawablePadding="14dip" android:paddingLeft="15dip" android:paddingRight="15dip" android:gravity="center_horizontal" />

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴南区| 桐乡市| 横峰县| 彰化市| 大荔县| 肇源县| 崇左市| 工布江达县| 屏东县| 华蓥市| 尚义县| 南平市| 桦川县| 祁连县| 镇雄县| 武陟县| 平顺县| 商洛市| 淮北市| 洛浦县| 灵宝市| 右玉县| 义马市| 中方县| 甘德县| 西城区| 新昌县| 淅川县| 周宁县| 徐州市| 宣城市| 将乐县| 双辽市| 西乌珠穆沁旗| 闸北区| 大荔县| 闵行区| 新邵县| 庆安县| 乐安县| 镇康县|