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)