When you define sizes in density-independent pixels, this is intended to make the objects so defined more or less the same physical size on screens of varying densities. I suspect that the images you have posted are close-ups of your screens with smaller pixel dimensions, and more distant views of your screens with larger pixel dimensions; if you were to put both screens side by side on a table and photograph the physical devices, I suspect that your images would be approximately the same size. Your larger screen has not just more pixels, but more density-independent pixels, so an image of a specific size, expressed in dp, will take up a smaller percentage of that screen, although it will probably be about the same physical size (e.g., in inches).
You seem to be expecting that defining your images using dp units will cause them to occupy the same percentage of the physical screen, but that is not the purpose of those units. In fact, since different screens have different aspect ratios (ratio of width to height), such behavior would lead to distortions of your graphics.
Consider using fill_parent to scale your outermost layout to the size of the screen. You could make that outer layout a horizontally-configured LinearLayout for the left and right sides of the display, with the width of each defined as a percentage using layout_weight. You could then nest a vertically-configured LinearLayout as the first element of this horizontal one, with the top containing a GridView for the 3x3 images on the left, with each image scaled within its containing square in a way that preserves its aspect ratio, and so on.