I don't see you do anything with rect1 and rect2??

On Thu, Jul 23, 2009 at 2:14 PM,
Erin<[email protected]> wrote:
>
> 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 »
> >
>



-- 
Romain Guy
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time
to provide private support.  All such questions should be posted on
public forums, where I and others can see and answer them

--~--~---------~--~----~------------~-------~--~----~
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