คำถามติดแท็ก drawable

Drawable เป็นคำที่เกี่ยวข้องกับกราฟิกซึ่งโดยทั่วไปหมายถึง "สิ่งที่ต้องวาด"

20
ไดเรกทอรี drawable Android สามารถมีไดเรกทอรีย่อยได้หรือไม่?
ในเอกสารประกอบ Android SDK ตัวอย่างทั้งหมดที่ใช้กับไวยากรณ์ @ drawable / my_image xml ระบุที่อยู่ของรูปภาพโดยตรงที่เก็บไว้ในไดเรกทอรี res / drawable ในโครงการของฉัน ฉันสงสัยว่าถ้าไม่ชัดเจนที่จะสร้างไดเรกทอรีย่อยภายในไดเรกทอรีที่สามารถดึงข้อมูลได้ ตัวอย่างเช่นถ้าฉันมีรูปแบบไดเรกทอรีต่อไปนี้: res/drawable -- sandwiches -- tunaOnRye.png -- hamAndSwiss.png -- drinks -- coldOne.png -- hotTea.png ฉันขออ้างอิงภาพแซนวิชทูน่าสลัดเป็น @ drawable / sandwiches / tunaOnRye หรือฉันจะต้องรักษาลำดับชั้นให้คงอยู่ในไดเรกทอรีที่วาดได้


7
วิธีสร้าง Drawable จากทรัพยากร
ฉันมีภาพres/drawable/test.png(R.drawable.test) ฉันต้องการที่จะผ่านภาพนี้เพื่อฟังก์ชั่นที่ยอมรับเช่นDrawablemButton.setCompoundDrawables() ดังนั้นฉันจะแปลงทรัพยากรรูปภาพเป็นDrawableอย่างไร
283 android  drawable 

12
setBackground vs setBackgroundDrawable (Android)
ฉันต้องการตั้งค่าพื้นหลังที่สามารถวาดได้ในมุมมอง มีสองวิธีการนี้ (เท่าที่ผมดู) และsetBackgroundsetBackgroundDrawable เมื่อฉันใช้setBackgroundมันบอกว่ามันถูกเพิ่มเข้ามาในAPI ระดับ 16แต่เวอร์ชันต่ำสุดของ SDK ของฉันคือ 7 ฉันคิดว่ามันจะไม่ทำงานกับอะไรที่ต่ำกว่า 16 ใช่ไหม แต่เมื่อฉันใช้ setBackgroundDrawable มันบอกว่ามันเลิกใช้แล้ว ฉันควรใช้อะไรดี

11
ขนาดภาพหน้าจอ Android สาดให้พอดีกับอุปกรณ์ทั้งหมด
ฉันมี PNG แบบเต็มหน้าจอฉันต้องการแสดงผลด้วยสแปลช เพียงหนึ่งข้อผิดพลาดที่นั่นและผมมีความคิดว่าขนาดที่จะใส่ในโฟลเดอร์ drawable ทุก ( ldpi, mdpi, hdpiและxhdpi) แอปพลิเคชันของฉันควรทำงานได้ดีและสวยงามบนโทรศัพท์และแท็บเล็ตทั้งหมด ฉันควรสร้างขนาดใด (เป็นพิกเซล) เพื่อให้สแปลชดีบนทุกหน้าจอ

6
คุณจะได้รับวัตถุ Drawable จาก id ทรัพยากรในแพ็คเกจ Android ได้อย่างไร
ฉันต้องได้รับวัตถุ Drawable เพื่อแสดงบนปุ่มรูปภาพ มีวิธีใช้รหัสด้านล่าง (หรือบางอย่างเช่น) เพื่อรับวัตถุจาก android.R.drawable. * แพ็คเกจหรือไม่ ตัวอย่างเช่นถ้า drawableId คือ android.R.drawable.ic_delete mContext.getResources().getDrawable(drawableId)

7
Android - drawable ที่มีมุมโค้งมนที่ด้านบนเท่านั้น
ฉันวาดภาพนี้ให้สี่เหลี่ยมมุมฉากเป็นพื้นหลังได้: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <stroke android:width="1dp" android:color="@color/light_gray" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <corners android:radius="6dp" /> </shape> ทำงานได้ดีตามที่คาดไว้ ตอนนี้ฉันต้องการเปลี่ยนสิ่งนี้ให้ปัดเฉพาะมุมบนสุดเท่านั้นดังนั้นฉันจึงเปลี่ยนเป็น: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <stroke android:width="1dp" android:color="@color/light_gray" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <corners android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/> </shape> แต่ตอนนี้ไม่มีมุมใดมนและฉันได้รูปสี่เหลี่ยมผืนผ้าธรรมดา ฉันหายไปนี่อะไร

2
แทนที่รูปภาพตัวเลือกโดยใช้โปรแกรม
ฉันมี ImageView ที่มีทรัพยากรรูปภาพที่วาดได้ซึ่งตั้งค่าเป็นตัวเลือก ฉันจะเข้าถึงตัวเลือกโดยใช้โปรแกรมและเปลี่ยนภาพของสถานะที่ไฮไลต์และไม่ไฮไลต์ได้อย่างไร นี่คือรหัสของตัวเลือก: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iconSelector"> <!-- pressed --> <item android:state_pressed="true" android:drawable="@drawable/btn_icon_hl" /> <!-- focused --> <item android:state_focused="true" android:drawable="@drawable/btn_icon_hl" /> <!-- default --> <item android:drawable="@drawable/btn_icon" /> </selector> ฉันต้องการที่จะสามารถแทนที่btn_icon_hlและbtn_iconด้วยรูปภาพอื่น ๆ

10
การทำความเข้าใจการใช้ ColorMatrix และ ColorMatrixColorFilter เพื่อปรับเปลี่ยนสีของ Drawable
ฉันกำลังทำงานกับ UI ของแอปและฉันกำลังพยายามใช้ไอคอนระดับสีเทาและอนุญาตให้ผู้ใช้เปลี่ยนธีมเป็นสีที่พวกเขาเลือก ในการทำเช่นนี้ฉันกำลังพยายามใช้ ColorFilter บางประเภทเพื่อวางทับสีที่ด้านบนของ drawable ฉันได้ลองใช้ PorterDuff.Mode.MULTIPLY แล้วและมันใช้งานได้เกือบตรงตามที่ฉันต้องการยกเว้นว่าผ้าขาวจะถูกซ้อนทับด้วยสีด้วย สิ่งที่ฉันต้องการคือบางอย่างเช่นโหมดผสม "สี" ใน Photoshop ซึ่งกราฟิกยังคงความโปร่งใสและความส่องสว่างและปรับเปลี่ยนสีของภาพเท่านั้น ตัวอย่างเช่น กลายเป็นหลังจากทำการวิจัยบางอย่างปรากฏว่าคลาส ColorMatrixColorFilter อาจทำในสิ่งที่ฉันต้องการ แต่ฉันไม่พบแหล่งข้อมูลใด ๆ ที่ชี้ไปที่วิธีการใช้เมทริกซ์ มันเป็นเมทริกซ์ 4x5 แต่สิ่งที่ฉันต้องรู้คือฉันจะออกแบบเมทริกซ์ได้อย่างไร ความคิดใด ๆ ? แก้ไข: โอเคสิ่งที่ฉันพบจนถึงตอนนี้มีดังนี้: 1 0 0 0 0 //red 0 1 0 0 0 //green 0 0 1 0 0 //blue 0 0 …

14
Android: ไม่สามารถแปลง @ drawable / picture เป็น drawable
ในโฟลเดอร์ที่วาดได้ของฉันฉันมีภาพอยู่สองสามภาพและทุกภาพอ้างอิงได้อย่างสมบูรณ์แบบ แต่เมื่อฉันลองเพิ่มรูปภาพอื่น ๆ ที่มีขนาดเท่ากันในโฟลเดอร์เดียวกันและพยายามอ้างอิงมันเกิดข้อผิดพลาด"ไม่สามารถแปลง @ ได้ วาดได้ / รูปภาพลงในสิ่งที่วาดได้ " . ฉันได้ลองใช้รูปภาพเดียวกันโดยใช้ชื่ออื่นและมันก็ทำให้ฉันมีข้อผิดพลาดนั้นอยู่เรื่อย ๆ ฉันได้ลองใช้ในรูปแบบ XML ที่แตกต่างกันและสิ่งเดียวกัน นอกจากนี้ชื่อของภาพยังเป็น "jack", "abc", "question_mark" ดังที่คุณเห็นว่ามีกฎอย่างเคร่งครัดเกี่ยวกับอักขระที่คุณสามารถใช้และยังคงมีข้อความแสดงข้อผิดพลาดปรากฏขึ้น คำแนะนำใด ๆ ที่ดีในการแก้ไขปัญหาขอบคุณ ไม่สามารถแปลง @ drawable / picture เป็น drawable

3
ฉันจะตั้งค่ารัศมีมุมโค้งมนของสีที่วาดได้โดยใช้ xml ได้อย่างไร
ในเว็บไซต์ของ Android มีส่วนเกี่ยวกับสีที่วาดได้ การกำหนด drawables เหล่านี้ใน xml มีลักษณะดังนี้: <resources> <drawable name="solid_red">#f00</drawable> <drawable name="solid_blue">#0000ff</drawable> <drawable name="solid_green">#f0f0</drawable> </resources> ใน java api มีวิธีการต่อไปนี้เพื่อกำหนดมุมโค้งมน: setCornerRadius(float radius) มีวิธีกำหนดมุมมนใน xml หรือไม่?
108 android  drawable 

4
เป็นไปได้ไหมที่จะหมุน drawable ในคำอธิบาย xml
ฉันกำลังสร้างแอปโดยมีทรัพยากรที่สามารถใช้ซ้ำได้ (เนื่องจากปุ่มต่างๆมักจะเหมือนกัน แต่จะเป็นมิเรอร์หรือหมุน) ฉันต้องการใช้ทรัพยากรเดียวกันดังนั้นฉันจึงไม่ต้องเพิ่มทรัพยากรอีก 3 รายการที่เหมือนกับต้นฉบับทุกประการ แต่ถูกหมุนเวียน แต่ฉันก็ไม่ต้องการผสมโค้ดกับสิ่งที่สามารถประกาศใน XML หรือทำการแปลงด้วยเมทริกซ์ที่จะเสียเวลาในการประมวลผล ฉันมีปุ่มสถานะสองปุ่มที่ประกาศใน XML <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/and_card_details_button_down_left_onclick" /> <!-- pressed --> <item android:drawable="@drawable/and_card_details_button_down_left" /> <!-- default --> </selector> และฉันต้องการใช้ที่ดึงได้ซ้ำเพราะมันจะเหมือนเดิม แต่หมุน90ºและ45ºและฉันกำหนดให้ปุ่มเป็นแบบดึงได้ <Button android:id="@+id/Details_Buttons_Top_Left_Button" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/details_menu_large_button" /> ฉันรู้ว่าฉันสามารถหมุนได้ด้วย a RotateDrawableหรือด้วยMatrixแต่อย่างที่ฉันอธิบายไปแล้วว่าฉันไม่ชอบวิธีนั้น เป็นไปได้หรือไม่ที่จะบรรลุสิ่งนั้นโดยตรงบน XML หรือสิ่งใดที่คุณคิดว่าจะเป็นวิธีที่ดีที่สุด? ใส่ทรัพยากรทั้งหมด แต่หมุนแล้วหมุนในรหัส? - แก้ไข - …

8
เหตุใดสเกลเวกเตอร์ที่วาดได้ของฉันจึงไม่เป็นไปตามที่คาดไว้
ฉันกำลังพยายามใช้ vector drawables ในแอพ Android ของฉัน จากhttp://developer.android.com/training/material/drawables.html (เน้นของฉัน): ใน Android 5.0 (API ระดับ 21) ขึ้นไปคุณสามารถกำหนด vector drawables ซึ่งปรับขนาดได้โดยไม่สูญเสียความหมาย ใช้ drawable นี้: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="@color/colorPrimary" android:pathData="M14,20A2,2 0 0,1 12,22A2,2 0 0,1 10,20H14M12,2A1,1 0 0,1 13,3V4.08C15.84,4.56 18,7.03 18,10V16L21,19H3L6,16V10C6,7.03 8.16,4.56 11,4.08V3A1,1 0 0,1 12,2Z" /> และ ImageView นี้: …

7
Android: การโคลนสิ่งที่วาดได้เพื่อสร้าง StateListDrawable ด้วยตัวกรอง
ฉันพยายามที่จะทำให้ฟังก์ชั่นกรอบทั่วไปที่ทำให้ Drawable ใด ๆ กลายเป็นไฮไลต์เมื่อกด / มุ่งเน้น / เลือก / etc ฟังก์ชั่นของฉันใช้เวลา Drawable และผลตอบแทน StateListDrawable ที่รัฐเริ่มต้นคือ Drawable ตัวเองและของรัฐเพื่อandroid.R.attr.state_pressedเป็น drawable setColorFilterเดียวกันเพียงกับตัวกรองที่นำมาใช้โดยใช้ ปัญหาของฉันคือฉันไม่สามารถโคลนสิ่งที่วาดได้และสร้างอินสแตนซ์แยกต่างหากโดยใช้ตัวกรอง นี่คือสิ่งที่ฉันพยายามจะบรรลุ: StateListDrawable makeHighlightable(Drawable drawable) { StateListDrawable res = new StateListDrawable(); Drawable clone = drawable.clone(); // how do I do this?? clone.setColorFilter(0xFFFF0000, PorterDuff.Mode.MULTIPLY); res.addState(new int[] {android.R.attr.state_pressed}, clone); res.addState(new int[] { …

3
ติดต่อ Bubble EditText
ฉันกำลังพยายามสร้างฟองอากาศการติดต่อในลักษณะที่MultiAutoCompleteTextViewคล้ายกับการใช้งานในแอป Google+ ด้านล่างนี้คือภาพหน้าจอ: . ฉันได้พยายามที่จะขยายDynamicDrawableSpanชั้นเรียนเพื่อให้สามารถวาดเป็นระยะ ๆ ได้ในพื้นหลังของช่วงของข้อความ public class BubbleSpan extends DynamicDrawableSpan { private Context c; public BubbleSpan(Context context) { super(); c = context; } @Override public Drawable getDrawable() { Resources res = c.getResources(); Drawable d = res.getDrawable(R.drawable.oval); d.setBounds(0, 0, 100, 20); return d; } } โดยที่ oval.xml drawable ของฉันถูกกำหนดดังนี้: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.