第六節(jié)視頻的內(nèi)容,真正做起來(lái)才發(fā)現(xiàn)自己一點(diǎn)都不了解這個(gè)點(diǎn)9圖缝呕。
概述
官網(wǎng)截的:
A NinePatchDrawable
graphic is a stretchable bitmap image, which Android will automatically resize to accommodate the contents of the View in which you have placed it as the background. An example use of a NinePatch is the backgrounds used by standard Android buttons — buttons must stretch to accommodate strings of various lengths. A NinePatch drawable is a standard PNG image that includes an extra 1-pixel-wide border. It must be saved with the extension .9.png
, and saved into the res/drawable/
directory of your project.
點(diǎn)9圖示一種可伸縮的位圖澳窑,如果你某個(gè)View用了點(diǎn)9圖做background,
Android會(huì)根據(jù)點(diǎn)9圖的設(shè)置來(lái)自動(dòng)為你調(diào)整供常、適應(yīng)內(nèi)容摊聋。
點(diǎn)9圖是標(biāo)準(zhǔn)的PNG格式圖像,被一圈1像素寬的邊緣包圍栈暇,
并且保存的時(shí)候擴(kuò)展名一定要是“.9.png”麻裁,還要保存在“res/drawable/”目錄。
其它要注意的地方
1.四邊那幾條黑線代表什么
2.最外圍的一圈像素必須要么是純黑色源祈,要么是透明煎源,一點(diǎn)點(diǎn)的半透明的像素都不可以有,比如說(shuō)99%的黑色或者是1%的投影都不可以有
3.文件的后綴名必須是.9.png香缺,不能是.png或者是.9.png.png手销,這樣的命名都會(huì)導(dǎo)致編譯失敗。
關(guān)于操作
真正操作起來(lái)赫悄,才發(fā)現(xiàn)自己真的很不熟練原献。
看視頻的時(shí)候,說(shuō)“Create 9-Patch file”埂淮,
然后我連Create 9-Patch file
在哪里點(diǎn)擊都沒(méi)找到……
之前是用那種畫(huà)點(diǎn)9圖的工具姑隅,現(xiàn)在AndroidStudio直接就有提供了。
把png格式(一定要是png倔撞,jpg之類(lèi)的都不行)讲仰,復(fù)制到“res/drawable/”目錄,
點(diǎn)擊右鍵痪蝇,就會(huì)在菜單看到Create 9-Patch file
了鄙陡。
留意下面還有 □Show content 和 □Show patches 兩個(gè)選項(xiàng)冕房。
畫(huà)的時(shí)候,就是在那1像素的包圍圈“拖動(dòng)”劃線和“按住Shift鍵”刪除趁矾。
我的上機(jī)試驗(yàn)
我做了一個(gè)EditText和Button耙册,
那個(gè)Button的background就是下面這幅圖,
把它像上面那樣做成點(diǎn)9圖毫捣。
當(dāng)在EditText輸入字符串详拙,然后點(diǎn)擊Button,
Button就會(huì)顯示輸入的內(nèi)容蔓同,然后我就輸入很多字符饶辙。
分別設(shè)置點(diǎn)9圖上下左右的黑線,看Button會(huì)被撐開(kāi)成什么樣子斑粱。
代碼如下:
public class AnotherActivity extends ActionBarActivity {
private Button btn_testNinePatch;
private EditText et_testNinePatch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another);
btn_testNinePatch = (Button) findViewById(R.id.btn_testNinePatch);
et_testNinePatch = (EditText) findViewById(R.id.et_testNinePatch);
btn_testNinePatch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn_testNinePatch.setText(et_testNinePatch.getText().toString());
}
});
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<EditText
android:id="@+id/et_testNinePatch"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_testNinePatch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button1"
android:text="sdfdsfdsfdsfdsfdsfdsfdsfsdf" />
</LinearLayout>
記住那些要注意的地方弃揽,自己上機(jī)試一下,大概也就懂了则北。