Android 如何渲染棘手的屁股九分球?

Android 如何渲染棘手的屁股九分球?,android,Android,这是基本的想法,但图像是丑陋的和像素化的。为什么 public class Main extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mai

这是基本的想法,但图像是丑陋的和像素化的。为什么


public class Main extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ImageView iv = (ImageView) findViewById(R.id.iv);
    Bitmap bmap = BitmapFactory.decodeResource(getResources(), R.drawable.btn_default_normal);
    NinePatchDrawable npd = new NinePatchDrawable(bmap, bmap.getNinePatchChunk(), new Rect(0,0,512,512), "name");
    npd.mutate();
    npd.setBounds(new Rect(0,0,512,512));
    npd.invalidateSelf();
    Bitmap bp = Bitmap.createBitmap(512,512, Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(bp);
    npd.draw(canvas);
    FileOutputStream ofo=null;
    try {
      ofo = openFileOutput("image", MODE_WORLD_READABLE);
    } catch (IOException e) {
      e.printStackTrace();
    }
    bp.compress(Bitmap.CompressFormat.PNG, 100, ofo);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.putExtra(Intent.EXTRA_STREAM, getFileStreamPath("image").toURI());
    intent.setType("image/png");
    //startActivity(intent);
    iv.setImageDrawable(new BitmapDrawable(bp));
  }
}

你让它变得比需要的复杂得多。只需在XML中设置视图,如下所示:

<TextView
        android:background="@android:drawable/btn_default_small"        
        android:layout_width="512px"
        android:layout_height="wrap_content"
        android:text="NinePatch View"
        />

作为旁注,您在什么设备上显示它?大多数手机的宽度只有480像素

我本来对这个问题轻描淡写,但我改变了主意。这增加了味道。你为什么不发布真正的“狡猾的屁股”九人组以及你想要完成的事情呢?所有的信息都在那里。这九个补丁是btn_default_normal.9.png,很容易从android的开源软件中获得。你想实现什么?你的“基本想法”看起来和任何东西都不一样。拿一张9补丁的图片,把它拉伸到512px。上面的代码很长,但结果看起来很糟糕。我本来希望用它来制作一个应用程序……现在我不得不展示我的手。哦……进步更重要;)
iv.setBackgroundResource(R.drawable.btn_default_small)