sách gpt4 ăn đã đi

Android nhận ra hiệu ứng của văn bản và hình ảnh hỗn hợp (văn bản xung quanh hình ảnh)

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 32 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết blog CFSDN này Android nhận thấy tác dụng của văn bản và hình ảnh hỗn hợp (văn bản xung quanh hình ảnh) được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.

Ví dụ trong bài viết này mô tả tác dụng của văn bản và hình ảnh hỗn hợp (văn bản xung quanh hình ảnh) trong Android. Share cho mọi người tham khảo nhé, chi tiết như sau:

Trong các dự án thông thường của chúng ta, chúng ta có thể cần mô tả một bức tranh hoặc thứ gì đó bằng văn bản và hình ảnh. Lúc này, bố cục bắt buộc phải đẹp nên sẽ xảy ra tình trạng văn bản và hình ảnh bị trộn lẫn, như trong hình:

Android nhận ra hiệu ứng của văn bản và hình ảnh hỗn hợp (văn bản xung quanh hình ảnh)

Trong trường hợp này, phần mô tả văn bản trên và phần dưới liên tục với nhau. Điều này đòi hỏi chúng ta phải tính toán làm thế nào để kết hợp mô tả văn bản phía trên một cách mạch lạc với phần mô tả văn bản phía dưới. Điều này đòi hỏi chúng ta phải thực hiện các phép tính được đưa ra dưới đây. trong đó cũng có những bình luận chi tiết, và nguyên tắc rất đơn giản.

Vì nó tương đối đơn giản nên chúng tôi tính toán trực tiếp trong hoạt động:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
bưu kiện com.example.test;
nhập khẩu android.ứng dụng.hoạt động;
nhập khẩu android.graphics.paint;
nhập khẩu android.os.bundle;
nhập khẩu android.view.viewtreeobserver;
nhập khẩu android.widget.imageview;
nhập khẩu android.widget.textview;
công cộng lớp học hoạt động chính mở rộng hoạt động {
   Boolean hình ảnh được đo = SAI ;
   chế độ xem văn bản tv_right;
   chế độ xem văn bản tv_bottom;
   tĩnh cuối cùng chuỗi văn bản = "Diệp Phàm: Nhân vật chính trong tiểu thuyết, anh ta và bạn học cũ bị Cửu Long đưa vào quan tài trong một buổi hội họp ở Thái Sơn," +
       "Tiến vào Bắc Đẩu Tinh Vực, ta biết được ta chính là Cổ Thánh Diệp Phạm thân thể, xuyên qua cấm địa, học được nguyên thuật, cùng thánh địa gia tộc chiến đấu, cùng cổ xưa sinh vật chiến đấu." +
       "Tổ chức lại Thiên Đình, Diệp Phàm du hành khắp nơi, gặp được rất nhiều cơ hội và thử thách. Kỹ năng của hắn tăng lên mạnh mẽ, tầm nhìn dần dần mở rộng. Một thế giới rộng lớn của những người bất tử và anh hùng," +
       "Nó mở ra trước mắt độc giả từ góc nhìn của anh ấy. Ji Ziyue: Cô Ji gia, mười bảy tuổi. Cô bị Ye Fan bắt cóc và cùng nhau trải qua cuộc phiêu lưu trong cung điện đồng cổ xưa," +
       "Dựa vào Thần Quang Thoát Phù phá bỏ hạn chế, đồng thời bắt cóc Diệp Phàm tiến vào Thái Huyền Tông tìm kiếm bí thuật." +
       "Sau khi Ye Fan trốn thoát khỏi Taixuan, Ji Ziyue bị Hua Yunfei truy đuổi trong cuộc nổi loạn của Peacock King. Cô gặp lại Ye Fan[2] và được Ye Fan hộ tống trở lại nhà Ji." +
       ", dần dần nảy sinh tình cảm vi tế với Ye Fan. Sau này cô trở thành vợ của Ye Fan. Một ngàn năm sau, cô trở thành bất tử trên Feixianxing. Sau khi Ye Fan cũng bước vào con đường bất tử, cô gặp lại Pang Bo:" +
       "Bạn thân nhất của Ye Fan ở trường đại học. Anh ấy mạnh mẽ và cao lớn, thẳng thắn và trung thành. Sau khi đến Beidou Star Territory, anh ấy đã bị Lingxu Cave lấy làm tiên giống để lấy trái thánh." +
       "Tại lăng mộ của Hoàng đế nhà Thanh, hắn bị cháu trai thế hệ thứ mười chín của Hoàng đế nhà Thanh chiếm hữu rồi rời đi, thân thể của hắn được rèn luyện đến bốn cảnh giới cực đoan. Sau đó, Diệp Phàm và Hắc hoàng đế đã trấn áp linh thức của lão ma." +
       "Pang Bo lấy lại quyền kiểm soát cơ thể, thu được kinh điển cổ xưa của yêu hoàng và pháp bảo hoa sen xanh do thực thể của lão yêu tinh chế, đồng thời học được chín chiêu của yêu hoàng và tám tư thế của thiên yêu." +
       "Nhưng hắn vẫn cải trang thành lão yêu, lưu lại Yêu tộc. Sau khi rời biên giới, hắn tìm được Diệp Phàm, cùng hắn qua lại nhiều lần. Sau khi Tinh Không Cổ Lộ được mở ra, hắn rời khỏi Bắc Đẩu." +
       "Được Ye Fan giải cứu khỏi lăng mộ của Quỷ vương, anh nhận được mật mã do Ye Fan đưa ra, và biến ba người thuần khiết thành một linh hồn. Cùng với Ye Fan, anh đi qua con đường thử thách cổ xưa và xây dựng Thiên đường Cung điện cùng nhau." ;
   // Chiều cao của màn hình
   số nguyên chiều rộng màn hình = 0 ;
   // Tổng cộng có thể đặt bao nhiêu ký tự?
   số nguyên đếm = 0 ;
   // Độ rộng của tất cả các ký tự trong chế độ xem văn bản
   trôi nổi tổng chiều rộng văn bản = 0 .0f;
   // Chiều rộng của một từ trong textview
   trôi nổi chiều rộng văn bản = 0 .0f;
   sơn sơn = mới sơn();
   @ghi đè
   công cộng vô hiệu oncreate(gói trạng thái đã lưu) {
     siêu .oncreate(trạng thái đã lưu);
     thiết lập chế độ xem nội dung (r. layout. activity_main);
     tv_right = (chế độ xem văn bản) findviewbyid(r.id.test_tv_right);
     tv_bottom = (chế độ xem văn bản) findviewbyid(r.id.test_tv_bottom);
     cuối cùng imageview imageview = (imageview) tìm chế độ xem theo id(r.id.test_image);
     imageview.setimageresource(r.drawable.ee);
     chiều rộng màn hình = getwindowmanager().getdefaultdisplay().getwidth();
     /**
      * Lấy chiều rộng của một từ
      */
     chiều rộng văn bản = tv_right.gettextsize();
     paint.settextsize(chiều rộng văn bản);
     /**
      * Vì không thể đo được chiều cao của hình ảnh ngay từ đầu nên bằng cách thêm người nghe, có thể đạt được chiều cao và chiều dài của hình ảnh
      */
     viewtreeobserver vto = imageview.getviewtreeobserver();
     vto.addonpredrawlistener( mới viewtreeobserver.onpredrawlistener() {
       công cộng Boolean khi vẽ trước() {
         nếu như (! đã đo hình ảnh) {
           hình ảnh được đo = ĐÚNG VẬY ;
           số nguyên chiều cao = imageview.getmeasuredheight();
           số nguyên chiều rộng = imageview.getmeasuredwidth();
           drawimageviewdone(chiều rộng, chiều cao);
         }
         trở lại đo hình ảnh;
       }
     });
   }
   riêng tư vô hiệu vẽhìnhảnhxemđãhoàn thành( số nguyên chiều rộng, số nguyên chiều cao) {
     //Chiều cao của một dòng phông chữ
     số nguyên lineheight = tv_right.getlineheight();
     // Có thể đặt bao nhiêu hàng?
     số nguyên số dòng = ( số nguyên ) làm tốt gấp đôi ) chiều cao / ( gấp đôi ) chiều cao dòng);
     //Chiều rộng của một dòng
     trôi nổi rowwidth = chiều rộng màn hình - chiều rộng - tv_right.getpaddingleft() - tv_right.getpaddingright();
     // Có thể đặt bao nhiêu ký tự trên một dòng?
     số nguyên số cột = ( số nguyên ) (chiều rộng hàng / chiều rộng văn bản);
     // Tổng số font bằng số dòng * số dòng
     đếm = đếm dòng * đếm cột;
     // Tổng chiều rộng của tất cả các chuỗi trong chế độ xem văn bản (số phông chữ * chiều rộng của mỗi ký tự)
     tổng chiều rộng văn bản = ( trôi nổi ) (( trôi nổi ) đếm * chiều rộng văn bản);
     văn bản đo lường();
     tv_right.settext(chuỗi văn bản phụ( 0 , đếm));
     // Kiểm tra xem số dòng có lớn hơn số dòng đã đặt hay không. Nếu lớn hơn thì giảm từng ký tự một và tính toán lại số dòng cho phù hợp với số đã đặt.
     trong khi (tv_right.getlinecount() > đếm dòng) {
       đếm -= 1 ;
       tv_right.settext(chuỗi văn bản phụ( 0 , đếm));
     }
     tv_bottom.setpadding( 0 , số dòng * chiều cao dòng - chiều cao, 0 , 0 );
     tv_bottom.settext(text.substring(đếm));
   }
   /**
    * Đo chiều dài đã điền và tính chiều dài còn lại
    */
   riêng tư vô hiệu văn bản đo lường() {
     chuỗi chuỗi = text.substring( 0 , đếm);
     trôi nổi kích thước = paint.measuretext(chuỗi);
     số nguyên số lượng còn lại = ( số nguyên ) ((tổng chiều rộng văn bản - kích thước) / chiều rộng văn bản);
     nếu như (số còn lại > 0 ) {
       đếm += số còn lại;
       văn bản đo lường();
     }
   }
}

Bố cục tệp xml như sau:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"1.0" mã hóa= "utf-8" ?>
"http://schemas.android.com/apk/res/android"
   android:bố cục_chiều_rộng= "fill_parent"
   android: layout_height= "fill_parent"
   android:hướng= "thẳng đứng" >
  
     android:bố cục_chiều_rộng= "fill_parent"
     android: layout_height= "bọc_nội_dung" >
    
       android:id= "@+id/hình ảnh thử nghiệm"
       android:bố cục_chiều_rộng= "bọc_nội_dung"
       android: layout_height= "bọc_nội_dung"
       android:scaletype= "fitxy" />
    
       android:id= "@+id/test_tv_right"
       android:bố cục_chiều_rộng= "fill_parent"
       android: layout_height= "bọc_nội_dung"
       android:layout_torightof= "@id/hình ảnh thử nghiệm"
       android:trọng lực= "fill_horizontal"
       android:paddingleft= "7dp"
       android:kích thước văn bản= "16sp" />
    
       android:id= "@+id/test_tv_bottom"
       android:bố cục_chiều_rộng= "fill_parent"
       android: layout_height= "bọc_nội_dung"
       android:layout_below= "@id/hình ảnh thử nghiệm"
       android:trọng lực= "fill_horizontal"
       android:kích thước văn bản= "16sp" />
  

Mã này rất nhỏ và nguyên tắc rất đơn giản. Sau này tôi thấy rằng phương pháp này hoạt động hoàn hảo trên hầu hết các điện thoại di động, nhưng vẫn còn một số vấn đề trên một số ít điện thoại di động. Vấn đề là gì? Đó là khi chúng ta đo độ dài của textview vì chúng ta vừa đặt văn bản rồi đo ngay nên kết quả thu được không chính xác nên bạn có thể tối ưu lại. Xin nhắc lại, sau khi đặt văn bản, chúng tôi có thể trì hoãn một thời gian trước khi đo để giá trị thu được có lãi. Tất nhiên, thời gian trễ chỉ là 50 mili giây, vì chúng tôi phải tin rằng tốc độ vẽ của chế độ xem văn bản vẫn còn. rất nhanh.

Tôi hy vọng bài viết này sẽ hữu ích cho mọi người trong việc lập trình Android.

Cuối cùng, bài viết này về tác dụng của văn bản và hình ảnh hỗn hợp (hình ảnh gói văn bản) trên Android kết thúc tại đây. Nếu bạn muốn biết thêm về tác dụng của văn bản và hình ảnh hỗn hợp (hình ảnh gói văn bản) trên Android, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục. để duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

32 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress