Thanks for the speedy reply.

I copied all my code into a new project with the 1.5 SDK but, while
I'm not getting any code errors, the rectangles don't change
transparency. I've thrown in a bunch of log statements to prove that
the code is actually getting to the setAlpha commands but when I run
it in the emulator it just shows the rectangles as constantly opaque.

Any thoughts?

On Jul 23, 11:55 am, Romain Guy <[email protected]> wrote:
> mutate() is available only in Android 1.5, it seems like you are
> developing with an older SDK.
>
> On Thu, Jul 23, 2009 at 11:11 AM,
>
> Erin<[email protected]> wrote:
>
> > Hi,
> > I'm sorry if I've missed something obvious but here goes.
>
> > I'm currently trying to make an android app where when one moves a
> > seekbar past a certain value a blue rectangle goes from transparent to
> > opaque. This rectangle/value pairing will be repeated for roughly 10
> > values in the seekbar. (Picture the AT&T bars being controlled by a
> > seekbar). I understand that when I try to change the alpha of my
> > rectangles (created from a resource in my drawable folder) I'm
> > changing both of them at the same time. I also understand the solution
> > to this is by calling mutate on my rectangles. What I'm having trouble
> > with is actually accomplishing this.
>
> > The error I get is: The method mutate() is undefined for the type
> > Drawable (lines 59 and 61).
>
> > I've tried changing my rectangles to ImageView and to ShapeDrawable.
> > I've also tried modeling it off of the following from one of the
> > previous posts but that didn't work either.
> > Drawable star = context.getResources().getDrawable(R.drawable.star);
> >            if (book.isFavorite()) {
> >              star.mutate().setAlpha(255); // opaque
> >            } else {
> >              star.mutate().setAlpha(70); // translucent
>
> > Any help would be very, very appreciated.
> > Thanks,
> > Erin
>
> > Below is all of my code:
>
> > package com.artificialmuscle.controllers;
>
> > import android.app.Activity;
> > import android.app.AlertDialog;
> > import android.content.Context;
> > import android.content.DialogInterface;
> > import android.graphics.Canvas;
> > import android.graphics.drawable.Drawable;
> > import android.graphics.drawable.ShapeDrawable;
> > import android.graphics.drawable.shapes.RectShape;
> > import android.media.MediaPlayer;
> > import android.os.Bundle;
> > import android.util.AttributeSet;
> > import android.util.Log;
> > import android.view.View;
> > import android.view.View.OnClickListener;
> > import android.widget.Button;
> > import android.widget.SeekBar;
> > import android.widget.SeekBar.OnSeekBarChangeListener;
>
> > public class Controllers extends Activity {
> >    /** Called when the activity is first created. */
>
> >        private final int OPAQUE = 255;
> >        private final int TRANSPARENT = 75;
>
> >        private MediaPlayer mp = null;
> >        Drawable rect1 = null;
> >        Drawable rect2 = null;
>
> >   �...@override
> >    public void onCreate(Bundle savedInstanceState) {
> >        super.onCreate(savedInstanceState);
> >        setContentView(R.layout.main);
>
> >        Button button1 = (Button)findViewById(R.id.button1);
> >        Button button2 = (Button)findViewById(R.id.button2);
> >        Button button3 = (Button)findViewById(R.id.button3);
>
> >        button1.setOnClickListener(new OnClickListener(){
> >                public void onClick(View viewParam){createDialogs(1);}});
> >        button2.setOnClickListener(new OnClickListener(){
> >                public void onClick(View viewParam){createDialogs(2);}});
> >                button3.setOnClickListener(new OnClickListener(){
> >                        public void onClick(View 
> > viewParam){createDialogs(3);}});
>
> >                rect1 = (ShapeDrawable)this.getResources().getDrawable
> > (R.drawable.bluerect);
> >                rect2 = this.getResources().getDrawable(R.id.rect2);
>
> >                // Ignore the different syntax I was only trying
> > options
> >                rect1.mutate();
> >                rect1.setAlpha(TRANSPARENT);
> >                rect2.mutate().setAlpha(TRANSPARENT);
>
> >            SeekBar mySeekBar = (SeekBar)findViewById(R.id.mySeekBar);
> >            mySeekBar.setMax(100);
>
> >            OnSeekBarChangeListener myListener = new 
> > OnSeekBarChangeListener()
> > {
>
> >                public void onProgressChanged(SeekBar arg0, int arg1, boolean
> > arg2) {
> >                                // TODO Auto-generated method stub
>
> >                                Log.i("seekbar","seekbar value changed to 
> > "+arg1);
>
> >                                // play sounds on 10, 20.. 90
> >                                if (arg1%10 == 0) {
> >                                        if (mp != null) {
> >                                                mp.stop();
> >                                                mp.release();
> >                                        }
> >                                        mp = 
> > MediaPlayer.create(Controllers.this, R.raw.sine25hz20ms);
> >                                        mp.start();
> >                                }
>
> >                                //if (arg1 == 10)Log.i("rectangle","I am at 
> > 10!!!");
>
> >                                if (arg1 >= 10) {rect1.setAlpha(OPAQUE);}// 
> > Log.i("rectangle","set
> > rect 1");}
> >                                else rect1.setAlpha(TRANSPARENT);
>
> >                                if (arg1 >= 20) 
> > {rect2.setAlpha(OPAQUE);}//Log.i("rectangle","set
> > rect 2");}
> >                                else rect2.setAlpha(TRANSPARENT);
> >                        }
>
> >                        public void onStartTrackingTouch(SeekBar seekBar) {
> >                                // TODO Auto-generated method stub
>
> >                        }
>
> >                        public void onStopTrackingTouch(SeekBar seekBar) {
> >                                // TODO Auto-generated method stub
>
> >                        }};
>
> >            mySeekBar.setOnSeekBarChangeListener(myListener);
>
> >    }
>
> >    public void createDialogs(int dialogID){
> >        AlertDialog.Builder builder = new AlertDialog.Builder
> > (Controllers.this);
>
> >        //if (dialogID == 1)
> >        switch (dialogID)
> >        {
> >        case 1: builder.setMessage("You clicked Button"+dialogID)
> >                           .setNeutralButton("DUH", new 
> > DialogInterface.OnClickListener
> > () {
> >                                        public void onClick(DialogInterface 
> > dialog, int id) {
> >                                dialog.cancel();
> >                           }// onClick
> >                                })
> >                           .show();
> >                        break;
> >        case 2:
> >                builder.setMessage("You clicked me, I am Button"+dialogID)
> >                           .setNeutralButton("DUH", new 
> > DialogInterface.OnClickListener() {
> >                                public void onClick(DialogInterface dialog, 
> > int id) {
> >                        dialog.cancel();
> >                   }// onClick
> >                                })
> >                           .show();
> >                        break;
> >        case 3:
> >                builder.setMessage("You clicked me")
> >                           .setNeutralButton("DUH", new 
> > DialogInterface.OnClickListener() {
> >                                public void onClick(DialogInterface dialog, 
> > int id) {
> >                        dialog.cancel();
> >                   }// onClick
> >                                })
> >                           .show();
> >                        break;
> >        default:
> >                builder.setMessage("I have no idea what you clicked")
> >                           .setNeutralButton("Shit", new 
> > DialogInterface.OnClickListener()
> > {
> >                                public void onClick(DialogInterface dialog, 
> > int id) {
> >                        dialog.cancel();
> >                   }// onClick
> >                                })
> >                           .show();
> >                        break;
> >        } // end of switch
> >    }
>
> >    private class CustomDrawableView extends View {
> >        private ShapeDrawable mDrawable;
>
> >        public CustomDrawableView(Context context, AttributeSet attrs)
> > {
> >                super(context, attrs);
>
> >            int x = 10;
> >            int y = 10;
> >            int width = 300;
> >            int height = 50;
>
> >            mDrawable = new ShapeDrawable(new RectShape());
> >            mDrawable.getPaint().setColor(0xff74AC23);
> >            mDrawable.setBounds(x, y, x + width, y + height);
> >        }
>
> >        protected void onDraw(Canvas canvas) {
> >            mDrawable.draw(canvas);
> >        }
> >    }
>
> > }
>
> > And heres the XML:
> > <?xml version="1.0" encoding="utf-8"?>
> > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/
> > android"
> >    android:orientation="vertical"
> >    android:layout_width="fill_parent"
> >    android:layout_height="fill_parent"
> >    >
>
> >        <TextView  android:id="@+id/txt"
> >            android:layout_width="fill_parent"
> >            android:layout_height="wrap_content"
> >            android:text="@string/intro"/>
>
> >  
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to