ขนาดตัวอักษร Android WebView เป็นพิกเซล

ฉันต้องการตั้งค่าขนาดตัวอักษรที่ใช้ใน WebView เป็นขนาดพิกเซลเฉพาะ ฉันกำลังทำอะไรบางอย่างตามแนวของ

<p style="font-size: 18px">Text</p>

อย่างไรก็ตาม ขนาดของแบบอักษรจะแตกต่างกันไปตามอุปกรณ์ต่างๆ มีความคิดใดที่จะทำให้งานนี้สำเร็จ?

ขอบคุณ!


person Joris Weimar    schedule 01.10.2012    source แหล่งที่มา
comment
เนื่องจากอุปกรณ์ที่แตกต่างกันมีขนาดพิกเซลต่างกัน... หากคุณต้องการตั้งค่าเป็นพิกเซลจริงๆ คุณควรคาดหวังการเปลี่ยนแปลงนี้ในอุปกรณ์ต่างๆ คุณมีเหตุผลเฉพาะที่ต้องการใช้พิกเซลหรือไม่?   -  person FoamyGuy    schedule 01.10.2012
comment
ขออภัย บางทีฉันควรจะอธิบายเรื่องนี้ให้ละเอียด ฉันใช้พิกเซล แต่ฉันปรับขนาดพิกเซลให้ตรงกับ dpi ของอุปกรณ์ ไคลเอนต์ของฉันมีการออกแบบพิกเซลคงที่ซึ่งฉันปรับขนาดเป็นขนาดสูงสุดที่เป็นไปได้ (มีเส้นขอบบนล่างหรือซ้ายขวา) ทุกอย่างทำงานได้อย่างสมบูรณ์ยกเว้น webview   -  person Joris Weimar    schedule 02.10.2012


คำตอบ (3)


วิธีแก้ปัญหาที่ฉันพบคือการเพิ่มเมตาแท็กต่อไปนี้ลงใน HTML

 <meta name=\"viewport\" content=\"target-densitydpi=device-dpi\" />
person Joris Weimar    schedule 17.10.2012
comment
ขอบคุณที่แจ้งให้เราทราบ ฉันควรพิจารณาวิธีอื่นแล้ว - person Joris Weimar; 01.09.2015
comment
‹meta name=viewport content=width=device-width› ทำงานได้ดีสำหรับฉันตามความคิดเห็นในลิงก์ด้านล่าง - person Juanin; 28.06.2016

คุณสามารถใช้ webview เพื่อรับวัตถุการตั้งค่าและ setDefaultFontSize(int size) วิธีการกำหนดขนาดตัวอักษรเริ่มต้น

ตัวอย่างเช่น:

myWebView.getSettings().setDefaultFontSize(20);

หรือคุณสามารถใช้วิธี setInitialScale(int percentage) บนเว็บของคุณ เพื่อตั้งค่าเปอร์เซ็นต์การซูมที่คุณต้องการ คุณสามารถลองใช้เปอร์เซ็นต์ต่างๆ และดูว่าคุณชอบอันไหน

ตัวอย่างเช่น:

myWebView.setInitialScale(85);

คุณยังสามารถใช้ webview เพื่อรับวัตถุการตั้งค่าจากนั้นใช้ setBuiltInZoomControls(boolean value) วิธีการอนุญาต/ไม่อนุญาตให้ผู้ใช้ใช้การควบคุมการซูมเริ่มต้น เพื่อให้สามารถซูมได้ตามความต้องการ

ตัวอย่างเช่น:

myWebView.getSettings().setBuiltInZoomControls(true);
person Anup Cowkur    schedule 01.10.2012

สิ่งใดที่ไม่ได้ผลสำหรับฉัน ฉันต้องทำสิ่งนี้แทน:

WebSettings settings = wv.getSettings();
if (Utils.hasIceCreamSandwich())
    settings.setTextZoom( (int)(settings.getTextZoom() * 1.2));
else {
    settings.setTextSize(WebSettings.TextSize.LARGER);
}
person David Martínez Pérez    schedule 13.11.2013