如何缩放图像项目GridView android?

如何缩放图像项目GridView android?,android,android-layout,Android,Android Layout,我有自定义的带有图像的gridview,但我不知道单击它时如何缩放gridview中的项目。有人能帮我吗? 我尝试在项目gridview中单击缩放图像。 此代码位于适配器中。 但是它不起作用 public View getView(final int position, View convertView, ViewGroup parent) { final Animation animScale = AnimationUtils.loadAnimation(mContext,

我有自定义的带有图像的gridview,但我不知道单击它时如何缩放gridview中的项目。有人能帮我吗? 我尝试在项目gridview中单击缩放图像。 此代码位于适配器中。 但是它不起作用

public View getView(final int position, View convertView, ViewGroup parent) {
    final Animation animScale = AnimationUtils.loadAnimation(mContext,
            R.anim.scale_anim);
    ObjMusicalType objMusical = mListMusical.get(position);
    if (convertView == null) {
        LayoutInflater inf = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        convertView = inf.inflate(R.layout.item_grid_type, null);
        imgMenu = (ImageView) convertView
                .findViewById(R.id.img_type_musical);
    }

    imgMenu.setImageResource(objMusical.getImageMusical());
    imgMenu.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try {
                Toast.makeText(mContext, "Click OK", Toast.LENGTH_LONG)
                        .show();
                imgMenu.startAnimation(animScale);
            } catch (Exception e) {

                e.printStackTrace();
            }
        }
    });
    return convertView;

}
这是项gridview的xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.starsoft.musical.custom.SquareImageView
        android:id="@+id/img_type_musical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

文件缩放动画

<set xmlns:android="http://schemas.android.com/apk/res/android" >

<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="1.5"
    android:toYScale="1.5" >
</scale>

对不起,这是我第一次在stackover提问!
感谢您的帮助

您应该将convertView.findViewById移到if(convertView==null)块之外:

但是为了获得更好的性能,您应该像

在OnClickListener中,您还需要更改为:

imgMenu.setImageResource(objMusical.getImageMusical());
imgMenu.setOnClickListener(new OnClickListener() {
    ImageView _imgMenu = imgMenu;
    @Override
    public void onClick(View v) {
        try {
            Toast.makeText(mContext, "Click OK", Toast.LENGTH_LONG)
                    .show();
            _imgMenu.startAnimation(animScale);
        } catch (Exception e) {

            e.printStackTrace();
        }
    }
});

为了避免所有OnClickListener调用同一ImageView上的StartImation。

您能解释一下您想做什么吗?还是举个例子?非常感谢!David Wasser感谢您的回答xtr。但如果我尝试在适配器中启动动画,它将不起作用。
imgMenu.setImageResource(objMusical.getImageMusical());
imgMenu.setOnClickListener(new OnClickListener() {
    ImageView _imgMenu = imgMenu;
    @Override
    public void onClick(View v) {
        try {
            Toast.makeText(mContext, "Click OK", Toast.LENGTH_LONG)
                    .show();
            _imgMenu.startAnimation(animScale);
        } catch (Exception e) {

            e.printStackTrace();
        }
    }
});