دکمه بزرگنمایی zoom
سلام
من می خوام یه دکمه بزرگ نمایی برای متن ها بذارم تا کاربر به دلخواه خودش متن رو تا یک سایزی بزرگ یا کوچیک کنه؟
فبلا از دوستانی که جواب مب دن تشکر می کنم.


سلام
میتونی طبق آموزش های custom control برای خودت یک کنترل سفارشی بسازی ولی فعلا این کدها میتونه کمکت کنه:
کدهای مربوط به اکتیویتی:
final TextView txt1 = (TextView) findViewById(R.id.txt1); SeekBar seekBar1 = (SeekBar) findViewById(R.id.seekBar1); seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) {} @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(txt1.getTextSize() < 10){
txt1.setTextSize(10 / 1.5f);
}
/**
* progress * 1.33 for ldpi - progress * 1 for mdpi
* progress / 1.5 for hdpi - progress / 2 for xhdpi
*/
txt1.setTextSize(progress / 1.5f); txt1.setText("text size is : " + txt1.getTextSize()); } });
کدهای XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/txt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="8dip" android:layout_marginTop="8dip" android:text="There is some text" /> <SeekBar android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="4dip" /> </LinearLayout>

دوست عزیز من الان امتحان کردم دستتون درد نکنه خوب گفتید اما منم مشکل دارم اینکه با تابع setMax سایز کران بالا رو میدیم اما مثلا من دوست دارم متن فقط حداقل سایز کران پایین 10 رو داشته باشه که نمیشه با یه شرط تا حدودی حل میکنمش مثلا به متن مقدار اولیه کران پایین رو میدم اما وقتی نوار لغزنده رو تا تکون میدم برای یه لحظه متن بسیار کوچیک میشه ک اعصابمو ریخته بهم من sample رو میذارم لطفا کمک کنید. (خلاصه حرفام : حداقل سایز مثلا 20 و حداکثر سایز 80 اما مقدار 20 مقدار 0درصد و سایز 80 مقدار 100 درصد رو برای نوار لغزنده داشته باشه ممنون)
package ir.pourmasih.app.zoom; import android.app.Activity; import android.os.Bundle; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; public class ZoomActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView txt = (TextView) findViewById(R.id.txt); final SeekBar skb = (SeekBar) findViewById(R.id.skb); skb.setMax(80); skb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar arg0) {} @Override public void onStartTrackingTouch(SeekBar arg0) {} @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { txt.setTextSize(80); //set text defualt size float s = txt.getTextSize(); if (s >= 20 || s <= 80) { // low limite and hight limite txt.setTextSize(arg1); // arg1 is progress // txt.setTextSize(txt.getTextSize()); // txt.setTextSize(50 / 1.5f); } } }); } }

خب گفتم شاید نخوندی!
اول setMax رو به جای 80 بکن 60
بعد کدهای onProgressChanged رو اینجوری بذار:
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
txt.setTextSize(arg1+20);
}
همین! (حالا واقعا تو کامنتای بالا این معلوم نبود؟ )
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .