Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I want to use a nine-patch image to make a splash screen for my application, which should look the same (square) in both portrait and landscape orientation.

My code is simple:

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.splashscreen);
  // more code here...
}

My resource file is:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/launch_image" />
    </item>
</layer-list>

Nine-patch image looks fine in Draw 9-patch utility: enter image description here

But as the result the image is stretched: enter image description here

What's wrong? Can nine-patch images be used this way at all?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
283 views
Welcome To Ask or Share your Answers For Others

1 Answer

Can nine-patch image be used this way at all? Well, no. Not properly.

Because 9 patches are meant to be stretchable.
A nice tutorial: https://radleymarx.com/2011/simple-guide-to-9-patch

You'd better use a square image and use it as a source (android:src), not as a background (android:background) for your ImageView.
Then you can ajust it by setting the android:scaleType attribute (FIT_XY ?).

Reference: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...