Android :: Inflating Drawables From XML
Aug 23, 2010Is there a way to extend a drawable (just like how shapes work, create your own tag) and allow it to be inflated from XML? Or is drawable only for the allowed 9 types?

Is there a way to extend a drawable (just like how shapes work, create your own tag) and allow it to be inflated from XML? Or is drawable only for the allowed 9 types?
I have a code that works 99% of the time since is deploy in lots of clients, but sometimes I get the following:
CODE:..........
And on my code I have:
CODE:......
I am getting InvocationTargetException.
whats the exact differences between 1. LinearLayout lin = LinearLayout.inflate (ctxt, R.layout.bla, null); parent.addView(lin); and 2. LinearLayout.inflate(ctxt, R.layout.bla, lin);? Both doing the same thing, or?
I got sometimes a different behavior.
I'm new to Android development and I've been having an issue that I haven't been able to fix. I'm mostly using code from examples provided in the SDK so I'm not sure what's happening here. I'm simply trying to create a custom view GhostSurfaceCameraView that extends SurfaceView. Here's my class definition file GhostSurfaceCameraView.java:
CODE:............
And this is in my ghostviewscreen.xml:
CODE:............
Now in the activity I made:
CODE:........
When setContentView gets called, an exception is thrown:
CODE:.................
Why I get this error?
i'm running into some issues inflating layouts and i wonder whether i have something basic wrong.i have a ListView with a custom adapter etc, and of course the item View is custom too. i've been creating the item View in code, and everything works fine, including recycling them and all that. great.but i want to move the View into a resource, where all good Android views live, and weirdness is happening.in the ListView's getView(), i get my inflater and inflate the view by ID. the view itself has its own XML file. i can inflate the top view, but i can't find anything by ID, and when asked for its children, nothing comes back.are there funky rules for inflating views this way? is there a convention for how this should be done inside a ListView?
View 11 Replies View RelatedLet's say for instance a button is needed with a picture and a text. It would seem natural to create an xml view and then inflate it into the Button. Is this possible?
At the moment I don't need the button to look clickable or change it's color at click, but it could also be interesting to consider how this will be affected by making the inflate.
Btw, I found this one tutorial describing a solution to the same problem, but they were writing a class extending View to obtain the goal. That seems a bit overklill to me. http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/
I'm new to Android and i'm trying to inflate a layout in xml but i get a RuntimeException. I have cut out almost everything except for my activity class and the class extending SurfaceView.
what i'm doing wrong?
CODE:........................
I have the following layout in XML (splashscreen.xml):
CODE:............
When I try to execute it in Android 1.5 (executes correctly in all other versions) I get these errors:
CODE:.............
Line 5 corresponds to ImageView line. Do you have any idea why my program executes in all Android versions except 1.5?
I am having an issue while trying to use a GridView in a PopupWindow. On my Activity's onCreate method, I am inflating a gridview from xml as follows:
CODE:.........
Would like this GridView to popup on a button click. Also inside of my activity's onCreate,
I have:
CODE:...........
On button click, I am throwing a ClassCastException from GridView.onMeasure(int, int).
I want to take a byte and append it to a resource ID to be able to get the image that corresponds to that numbered deck in the game. It was easy to with paths on other devices, but with the Resource ID's I am unsure how I could go about do this.
Here's what I have now:
CODE:..................
In my Blackberry version of this, I simply had:
CODE:.....................
Is there a way to accomplish something similar using Resource IDs on Android?
Im developing an app which is a product catalogue. Users can search for and view products (books). It's all read only and just so allow user's to view products. When the user clicks on a product, the next screen displays
- book title
- book author
- picture of front cover.
It's the picture part that I've a question about. I know one way to present drawables is to have them in the "drawable" direction in my android project and access them (in my xml file) as android:src="@drawable/name".
Only problem is that new products will be added so I can't store drawables in the APK file when I release it. I'll need to read them at runtime. I'm wondering what the best way to approach this is.
I'm thinking of upon app launch executing an AsyncTask which would call
openConnection of HttpURLConnection and would grab down all drawable(from a particular remote directory on a website) and would then store them in the sqllite db (as a blob). Each product in the db could easily be associated with it's specific drawable.
Not sure if there's a better approach to this ? or should I save them to the internal storage of the device (I know the size is an issue with this option). Or I could, when I show the product, call the Async task to present the image - i.e.get the image when the user requests it. This sounds good.
I get this exception when I try to inflate
07-22 19:15:39.903: ERROR/AndroidRuntime(3810): Caused by: java.lang.ClassCastException: android.widget.RelativeLayout
I have a base class:
public class UIBase extends RelativeLayout {}
And a more specific class:
public class Countdown extends UIBase {}
Then I try to inflate and it exceptions:
UIBase newView = (UIBase) inflater.inflate(layoutId, parent, true);
Here's the XML file:
CODE:..................
Posted my problem here too HERE: A beginner..Im doing a school map app.
First of all I have background with 4 buttons ( level3, level4, level5, level6) I try and click all the buttons, normally after clicking 3 of it, the next one will crash.(each level button goes into a level map, whereby clicking the room image buttons, I will enter into the gallery-imageswitcher)
I have at least 5 imageswitchers in each level maps,so that about over 20 imageswitcher galleries overall.
I did all my stuffs using DRAWABLES instead of BITMAPS.. I have tons and tons of images (because its a school map, show all the photos in my school, and all those backgrounds and imagebuttons)
I did some research, and those who have problems are those using bitmap. Some of the ways that can be solved is system.gc();, and bitmap.recycle...(not so sure how to use it though)
In my main background - starttour.java Code...
PS: I have tons of images in the app; I have at least 5 imageswitcher gallerys in each level, so that kinda adds up to over 20 imageswitchers in my app.
I am using a SurfaceView, and wish to animate Drawables. All the animation tutorials I have seen concern using an ImageView, which as I understand is not a sensible approach from within a SurfaceView. Does anyone have any suggestions for doing frame-by-frame animation within a SurfaceView? Can it be done with openGL?
View 4 Replies View RelatedI'm trying to draw a "gauge" on the screen with information from various sensors. I have a class that extends Drawable and a custom view that during construction creates a new AnimationDrawable and sets the only frame to my custom Drawable. I then start the AnimationDrawable from my Activity onWindowFocusChanged method. My custom Drawable onDraw method is only called once though. Is that by design (as in onDraw is called for each frame once and it's cached and shown over and over) or am I doing something wrong?
CODE:..................
My application has alot of pictures in it and I was wondering if its possible if one of my users click a button to send that picture to the sd card?
View 2 Replies View RelatedI want to use a number of ShapeDrawables in my application, which are all similar, but with different colours etc. Obviously I could just define them all in separate xml files, but is there a more efficient way to have one xml definition, instantiate various objects and change the colour either in code or xml? You could perhaps do this by calling mutate() on one ShapeDrawable defined in xml, but this returns a Drawable, rather than a shape drawable.
View 1 Replies View RelatedIs there any way to use an image that I'm generating on the fly as a Notification icon?
View 2 Replies View RelatedHow do access a drawable which resides in my project's res/drawable folder from outside an activity? The component which handles the loading of images is generic and is not inside any activity. I would like to display an image from res/drawable in case it can't be fetched from the web.
View 2 Replies View RelatedI'm trying to create an appwidget with a customizable background. I use a NinePatchDrawable and I would like to change it's color (using the setColorFilter method). This is no problem in an Activity, but it does dot seem possible with the RemoteView object used for appwidgets.Is there some way to get an ImageView in an appwidget to be updated with a new Drawable, not a Bitmap?Or if not, perhaps it's possible to get the actual size of the appwidget and convert / save the colored NinePatchDrawable to a Bitmap and then update the ImageView with that?I already searched quite a bit for a solution, but haven't found anything so far. I hope it's not impossible.
View 2 Replies View RelatedI am using some drawable objects, when I instance them and paint in my canvas they doesn't get the original PNG image file size, instead they get a bigger size, so they does't paint in my canvas as I expected since I wanted them in their original sizes, why this happens?
(original file is 96x96 pixels)
mSprite = mRes.getDrawable(R.drawable.my_sprite);
mSpriteWidth = mSprite.getIntrinsicWidth();
// It returns 114, not 96 mSpriteHeight = mSprite.getIntrinsicHeight();
// It returns 114, not 96
mSprite.setBounds(coordX, coordY, coordX + mSpriteWidth, coordY + mSpriteHeight); mSprite_PipeRect.draw(canvas); //It paints at 114x114 size, it shows bigger in the screen then original size.
Something similar happens with the background but it is fixed in the "setSurfaceSize" event this way:
public void setSurfaceSize(int width, int height) {
mBackgroundImage = Bitmap.createScaledBitmap(mBackgroundImage, width, height, true);
}
I am working with a library of maps which paints the icons on the map using drawables and canvas. Now, i'm trying to modify it in order to the user can click on icons. So i want to attach drawables into different ImageView with a onClickListener. However, i don't know how i can paint the ImageView using canvas from method onDraw.
I've tried with:
ImageView iv = new ImageView(context);
iv.setDrawableResource(drawable);
iv.draw(c)
But it doesn't appears in screen.
I need a textview with multiple drawables at bottom. In android, I know that there is a possibility of giving one image drawable for bottom. But i need multiple to be drawable at bottom.
View 2 Replies View RelatedWhen creating a stateful drawable, I cannot find the other drawables (9-patch images) that are there - i get no "suggestions" ("intelliSense").
But if I try to find drawables in another XML-file there is no problem.
This is my stateful drawable
CODE:..............
The "view_background_pressed" etc are all there, and they can be found in other XML-files but not in the statefule drawable.
When I add drawable resources to my project they do not show up in the list of drawables in the Reference Chooser. I checked the R file and there are references for the files.
I have tried refreshing the project, cleaning the project, and fixing project properties and nothing seems to help. Sometimes a couple will randomly show up in there, but not all of them.
The only consistent way I can get them to show up is to restart Eclipse.
Further findings:
After some trials, I found an other inconvenient work around to he issue. Turns out when importing multiple files into the project at once, Eclipse will only add the last one imported into the reference chooser. So when I imported my images one at a time, they all show up properly!
Like I said, inconvenient considering the amount of images I have left to import, but maybe with this new information it may help nail down where the issue may be and a possible fix.
I would like to display all resource drawables in a list so that the user can select one. Is there any way to loop through all R.drawable items so I don't have to hard code them into my program?
View 2 Replies View RelatedWhat is the best approach when using default Android drawables? Should I use android.R.drawable or should I copy the drawables in my project and use R.drawable?
Is there any risk, that in a newer version of Android, some of the default drawables are removed or resized? Or, affect in some negative way, the look of my app? Also, which of the drawables in the Android source code are considered "stable" and should be relied on?
I'd rather not copy the drawables because I think that the look of the app should be consistent with the Android version used. So, for example, for version 1.6 it should use the default Android bitmaps for version 1.6.
I am trying to modify this example:
http://developer.android.com/resources/tutorials/views/hello-gridview.html
But instead of displaying images that are resources, I want to display Drawables that I currently am storing in a List.
Can anyone instruct me on how I would modify
code...
To display my drawable items instead?
I'm writing an app that shows in google maps pipes and valves(lines and points). For that i've two classes.
One extends from ItemizedOverlay, and i add to map overlay one for each category of valve, and each one can have more than one item.
The second extends from Overlay, and in the draw method y draw the line with the method drawline of the canvas.
The problem i've is that the lines are drawn over the ItemizedOverlay items, no matter the order i add them to the mapView.getOverlays().
I want the lines on the bottom of all overlays. is there a way to do that.
Is it possible to add drawables to the positive, negative and neutral buttons of an AlertDialog? If yes, then how?
View 1 Replies View Related