ในการพัฒนา Android เรามักจะใช้สไตล์การวาดที่กำหนดเองการตั้งค่าสไตล์รูปร่างหรือตัวเลือกตัวเลือกในรูปแบบ drawables แต่บางครั้งถ้าต้องการรูปแบบที่สามารถวาดได้หลายรูปแบบในหนึ่ง XML และสไตล์ที่ตั้งอยู่ในนั้นแตกต่างกันเล็กน้อยจากนั้นปรับแต่งรูปแบบที่สามารถวาดได้หลายแบบจะปรากฏขึ้น
การใช้ statelistDrawable และ gradientDrawable
ตัวเลือกการใช้งาน Java:
/** * ตั้งค่าตัวเลือกพื้นหลัง * * @param pressedDraw * @param normalDraw * @return */private statelistDrawable getSelector (drawable normalDraw, pressedDraw ที่สามารถวาดได้) statelistDrawable.addstate (int ใหม่ [] {Android.r.attr.state_selected}, pressedDraw); StatelistDrawable.addstate (Int ใหม่ [] {}, NormalDraw); ส่งคืน StatelistDrawable;}นี่คือการสร้างตัวเลือกในรหัส ประเภทที่สร้างขึ้นคือ StatelistDrawable คุณสามารถเพิ่มสถานะลงในตัวเลือกผ่าน addState () อย่างไรก็ตามควรสังเกตว่าเมื่อเพิ่มสถานะจะมีคำสั่ง StatelistDrawable จะดำเนินการก่อนที่จะเพิ่มสถานะล่าสุด หากไม่ใช่รัฐให้ดำเนินการสถานะต่อไปนี้ หากสถานะขนาดใหญ่อยู่ด้านหน้ามันจะดำเนินการโดยตรงกับสถานะขนาดใหญ่โดยไม่ต้องดำเนินการสถานะที่ตามมา นอกจากนี้เมื่อเพิ่มสถานะให้เพิ่มเครื่องหมาย " -" ก่อนสถานะระบุว่าสถานะนี้เป็นเท็จ (ตัวอย่างเช่น: -android.r.attr.state_selected) มิฉะนั้นจะเป็นจริง
/** * ตั้งค่ารูปร่าง * * @param radius * @param fillcolor * @param width * @param strokecolor * @return */private gradientDrawable getDrawable (radius int, int fillcolor, int width, int strokecolor) GRADIEDDRAWABLE.SESTCORNERRADIUS (รัศมี); gradientDrawable.setColor (FillColor); ไล่ระดับสีได้ return gradientDrawable;}
สร้างการไล่ระดับสีแบบไดนามิกในรหัสซึ่งสามารถตระหนักถึงฟังก์ชั่นของสไตล์รูปร่างในรูปแบบที่น่าดึงดูด SetColor เท่ากับสีเติม Setcornerradius คือการตั้งเรเดียนของมุมโค้งมนในรูปร่าง หากคุณต้องการตั้งค่าเรเดียนของมุมเดียวคุณสามารถใช้ setcornerradii () เพื่อตั้งค่าเรเดียนของแต่ละมุม Setstroke () เป็นจังหวะและคุณต้องเติมเต็มความกว้างของจังหวะและสีของขอบ
ในที่สุดการใช้งานง่าย ๆ :
gradientDrawable normal = getDrawable (0, color.white, 1, getResources (). getColor (r.color.app_line_color)); GRADIEDDRAWABLE PRESS = getDraWable (0, สีขาว, 1, getResources () กด); TextView.setBackground (ตัวเลือก);
สรุป
ด้านบนเป็นรหัส Java ที่แนะนำโดยตัวแก้ไขเพื่อตั้งค่าสีพื้นหลังของตัวเลือกในสถานะต่าง ๆ ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!