انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فیت کردن متن html در WebView (در برنامه اندروید)

فیت کردن متن html در WebView (در برنامه اندروید)

#1
Rainbow 
با سلام خدمت دوستان خوبم...
بنده عضو جدید هستم،ممنون از زحماتتون...
یه سوال داشتم ممنون جواب بدبن..
یه فایل html رو توی یک webview بارگیری کردم،قابلیت زوم هم داره ....
مشکل من اینه که میخوام وقتی کاربر با دو انگشت زوم میکنه متن با اندازه صفحه نمایش فیت بشه و نیاز به اسکرول به چپ و داست توسط کاربر نباشه...
مثال بخوام بزنم مانند نرم افزار آخرین خبر ، وقتی روی خبرها زوم میکنم هر چند متن بزرگ میشه ولی نیاز به اسکرول نیست
پاسخ

فیت کردن متن html در WebView (در برنامه اندروید)

#2
سلام.
خیلی ممنون. 
بنده تاکنون این مورد را کدنویسی نکرده ام، ولی ایده ای به نظرم می آید که شاید کمکتون کنه.
من قبلا برنامه ای نوشته بودم که یک فایل HTML در WebView نمایش داده می شد، همچنین دو دکمه وجود داشت که کاربر با اشاره بر روی آنها، می توانست اندازه فونت متن ها را تغییر بدهد. کد لازم برای تغییر اندازه فونت ها، به صورت زیر می باشد (اول برابر 47 قرار داده می دادیم، بعد 3 واحد کم یا زیادتر می شد) :

کد پی‌اچ‌پی:
webView.getSettings().setDefaultFontSize(47); 

هنگامی که ما اندازه فونت در WebView را تغییر می دهیم، خود به خود، متن دوباره از نو چیده می شود و بنابراین با اندازه صفحه، تنظیم خواهد شد. اکنون شما باید ببینید که آیا کدهایی به عنوان listener برای zoom دوانگشتی وجود دارد یا خیر (مثلا مشابه OnTouchListener ، توصیه می کنم جستجو کنید، یک لینک مفید)، اگر وجود دارد، آنگاه بعد از هر بار که کاربر zoom می کند، کد مربوط به تنظیم اندازه فونت ها را اجرا کنید. می توانید اندازه فونت را برابر همان اندازه فعلی قرار داده یا اگر اثر نکرد، ابتدا 1 واحد افزایش داده و اجرا کنید، سپس یک واحد کاهش بدهید و دوباره اجرا کنید (منظورم تغیر اندازه فونت است). حدس می زنم که با این روش، بتوان دوباره متن را از نو تنظیم کرد.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط alidarbedar ، rainbow17

فیت کردن متن html در WebView (در برنامه اندروید)

#3
[font]ممنون از جوابتون فقط من مبتدی هستم اگه لطف کنین با جزئیات بیشتر به همراه کد بگین...
مثلا اگه بخوام  همون که شما قبلا کار کردید بخوام دو کلید قرار بدم که یکی سایز متن html  رو کم و یکی زیاد کنه با این تفاسیر چکار کنم؟؟؟؟

[/font]
کد پی‌اچ‌پی:
    @Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);

        
Button koochak = (ButtonfindViewById(R.id.koochak);
        
koochak.setOnClickListener(new OnClickListener() {

            @
Override
            
public void onClick(View v) {

            }
        });

        
Button bozorg = (ButtonfindViewById(R.id.bozorg);
        
bozorg.setOnClickListener(new OnClickListener() {

            @
Override
            
public void onClick(View v) {

            }
        });

        
wv = (WebViewfindViewById(R.id.webViewMain);
        
wv.loadUrl("file:///android_asset/index.html");

        
wv.getSettings().setBuiltInZoomControls(true);
        
wv.getSettings().setSupportZoom(true);
        
wv.getSettings().setUseWideViewPort(true);
        
wv.getSettings().setLoadWithOverviewMode(true);

        
wv.clearHistory();
        
wv.getSettings().setDefaultFontSize(47);

        
wv.getSettings().setJavaScriptEnabled(true);

    } 
 
پاسخ
 سپاس شده توسط admin

فیت کردن متن html در WebView (در برنامه اندروید)

#4
(۱۳۹۳/۰۹/۲۱, ۰۴:۴۹ ب.ظ)'rainbow17' نوشته: ممنون از جوابتون فقط من مبتدی هستم اگه لطف کنین با جزئیات بیشتر به همراه کد بگین...
مثلا اگه بخوام  همون که شما قبلا کار کردید بخوام دو کلید قرار بدم که یکی سایز متن html  رو کم و یکی زیاد کنه با این تفاسیر چکار کنم؟؟؟؟

 

بخشی از کدهایی که قبلا نوشتم رو براتون ذکر می کنم (برای کوچکتر و بزرگتر کردن متن) :

کد پی‌اچ‌پی:
    // show html file in webview
       
String html_file "file:///android_asset/html_files/" "file_" String.valueOf(image_number_to_show) + ".html";
       
webView = (WebViewfindViewById(R.id.webView1);
        
webView.getSettings().setJavaScriptEnabled(true);
        
webView.getSettings().setLoadWithOverviewMode(true);
        
webView.getSettings().setUseWideViewPort(true);
        
webView.getSettings().setBuiltInZoomControls(true);
        
webView.getSettings().setDefaultFontSize(webview_font_size);
        
webView.loadUrl(html_file);

        iv_negative = (ImageViewfindViewById(R.id.imageView10);
        iv_positive = (ImageViewfindViewById(R.id.imageView11);
        
        
// negative positive
        
iv_negative.setOnClickListener(new OnClickListener() {
            
            @
Override
            
public void onClick(View arg0) {
                
webview_font_size webview_font_size webview_font_change;
                
webView.getSettings().setDefaultFontSize(webview_font_size);
            }
        });
        
        
iv_positive.setOnClickListener(new OnClickListener() {
            
            @
Override
            
public void onClick(View arg0) {
                
webview_font_size webview_font_size webview_font_change;
                
webView.getSettings().setDefaultFontSize(webview_font_size);
            }
        }); 

دو تا ImageView را به کار برده ام که روی یکی، عکس منفی و روی دیگر، عکس مثبت نمایش داده می شود (به معنای کوچکتر یا بزرگتر شدن متن).

مقادیر رو هم به صورت زیر انتخاب کردم (در ابتدای Activity) (کدهای زیر، کدهای ابتدای Activity ای است که نوشتم) :

کد پی‌اچ‌پی:
public class Show_individual extends Activity {
    
    private 
WebView webView;
    public 
ImageView iv_positive;
    public 
ImageView iv_negative;
    public 
int webview_font_size 47;
    public 
int webview_font_change 3

پس در فایل xml ، باید یک WebView (با id درج شده در کدها) و همچنین دو ImageView (با آن id ها) تعریف کنید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط rainbow17

فیت کردن متن html در WebView (در برنامه اندروید)

#5
خیلی ممنوننننننننننننننن....
کار کرد...
میخوام حرفه ای تر باشه و buttom  نباشه و همین حالت رو برای zoom control تعریف کنم...
ممنون اگه برای این حالت کمکم کنین 
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان