با سلام خدمت دوستان خوبم...
بنده عضو جدید هستم،ممنون از زحماتتون...
یه سوال داشتم ممنون جواب بدبن..
یه فایل html رو توی یک webview بارگیری کردم،قابلیت زوم هم داره ....
مشکل من اینه که میخوام وقتی کاربر با دو انگشت زوم میکنه متن با اندازه صفحه نمایش فیت بشه و نیاز به اسکرول به چپ و داست توسط کاربر نباشه...
مثال بخوام بزنم مانند نرم افزار آخرین خبر ، وقتی روی خبرها زوم میکنم هر چند متن بزرگ میشه ولی نیاز به اسکرول نیست
سلام.
خیلی ممنون.
بنده تاکنون این مورد را کدنویسی نکرده ام، ولی ایده ای به نظرم می آید که شاید کمکتون کنه.
من قبلا برنامه ای نوشته بودم که یک فایل HTML در WebView نمایش داده می شد، همچنین دو دکمه وجود داشت که کاربر با اشاره بر روی آنها، می توانست اندازه فونت متن ها را تغییر بدهد. کد لازم برای تغییر اندازه فونت ها، به صورت زیر می باشد (اول برابر 47 قرار داده می دادیم، بعد 3 واحد کم یا زیادتر می شد) :
کد پیاچپی:
webView.getSettings().setDefaultFontSize(47);
هنگامی که ما اندازه فونت در WebView را تغییر می دهیم، خود به خود، متن دوباره از نو چیده می شود و بنابراین با اندازه صفحه، تنظیم خواهد شد. اکنون شما باید ببینید که آیا کدهایی به عنوان listener برای zoom دوانگشتی وجود دارد یا خیر (مثلا مشابه OnTouchListener ، توصیه می کنم جستجو کنید،
یک لینک مفید)، اگر وجود دارد، آنگاه بعد از هر بار که کاربر zoom می کند، کد مربوط به تنظیم اندازه فونت ها را اجرا کنید. می توانید اندازه فونت را برابر همان اندازه فعلی قرار داده یا اگر اثر نکرد، ابتدا 1 واحد افزایش داده و اجرا کنید، سپس یک واحد کاهش بدهید و دوباره اجرا کنید (منظورم تغیر اندازه فونت است). حدس می زنم که با این روش، بتوان دوباره متن را از نو تنظیم کرد.
(۱۳۹۳/۰۹/۲۱, ۰۴:۴۹ ب.ظ)'rainbow17' نوشته: [ -> ]ممنون از جوابتون فقط من مبتدی هستم اگه لطف کنین با جزئیات بیشتر به همراه کد بگین...
مثلا اگه بخوام همون که شما قبلا کار کردید بخوام دو کلید قرار بدم که یکی سایز متن html رو کم و یکی زیاد کنه با این تفاسیر چکار کنم؟؟؟؟
بخشی از کدهایی که قبلا نوشتم رو براتون ذکر می کنم (برای کوچکتر و بزرگتر کردن متن) :
کد پیاچپی:
// show html file in webview
String html_file = "file:///android_asset/html_files/" + "file_" + String.valueOf(image_number_to_show) + ".html";
webView = (WebView) findViewById(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 = (ImageView) findViewById(R.id.imageView10);
iv_positive = (ImageView) findViewById(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 ها) تعریف کنید.
خیلی ممنوننننننننننننننن....
کار کرد...
میخوام حرفه ای تر باشه و buttom نباشه و همین حالت رو برای zoom control تعریف کنم...
ممنون
اگه برای این حالت کمکم کنین