کلیدستان

نسخه‌ی کامل: بزرگ و کوچک شدن اتوماتیک تصویر در صفحه ای بزرگ و کوچک با JAVA (اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام 
لطفا به سوالم با استفاده از این دو کلمه پاسخ بدید : 
1. نه 
2. بله ( یه کم توضیح ) 

من میخواستم بتونم میشه کدهایی رو داخل فایل جاوا نوشت که با اون بشه کاری کرد که هر تصویر رو که داخل برنامه میزاری در صفحه های مختلف نمایش با هر اینچی بصورت خودکار تغییر اندازه بده . 
بله این امکان وجود داره ولی نیاز به کد نویسی زیاد داره راحت ترین کار اینه شما از scaleType که توی خود xml هستش استفاده کنید و به اون مقدار fitXY بدید
(۱۳۹۴/۰۷/۰۲, ۰۵:۴۶ ب.ظ)'seven7up' نوشته: [ -> ]بله این امکان وجود داره ولی نیاز به کد نویسی زیاد داره راحت ترین کار اینه شما از scaleType که توی خود xml هستش استفاده کنید و به اون مقدار fitXY بدید

 

تشکر از شما . خب در این حالت که از xml کمک بگیریم مقدار عرض و ارتفاع رو چی قرار بدم ؟ 


 
سلام شما به این صورت استفاده کنید
کد پی‌اچ‌پی:
<ImageView
            android
:id="@+id/cover"
            
android:layout_width="match_parent"
            
android:layout_height="match_parent"
            
android:layout_gravity="clip_horizontal"
            
android:scaleType="fitXY"
            
android:src="@drawable/defultcover" /> 
 
(۱۳۹۴/۰۷/۰۳, ۰۹:۰۷ ق.ظ)'seven7up' نوشته: [ -> ]سلام شما به این صورت استفاده کنید
کد پی‌اچ‌پی:
<ImageView
            android
:id="@+id/cover"
            
android:layout_width="match_parent"
            
android:layout_height="match_parent"
            
android:layout_gravity="clip_horizontal"
            
android:scaleType="fitXY"
            
android:src="@drawable/defultcover" /> 
 

 

سلامی دوباره 
با این روش که از طریق xml بریم باعث میشه تصاویر خیلی کش بیان . میشه لطف کنید اندکی یا خیلی زیاد درمورد روش java توضیح بدید . 

 
برای کد های جاوا شما میتونید از این کد استفاده کنید نمیدونم به کارتون بیاد یا نه ولی این کد تصویر رو به اندازه  صفحه نمایش فیت میکنه

کد پی‌اچ‌پی:
DisplayMetrics metrics = new DisplayMetrics();
                
getWindowManager().getDefaultDisplay().getMetrics(metrics);
                
int height metrics.heightPixels;
                
int width metrics.widthPixels;
                 
                
BitmapDrawable bmap = (BitmapDrawableMainActivity.this.getResources().getDrawable(R.drawable.test);
                
float bmapWidth bmap.getBitmap().getWidth();
                
float bmapHeight bmap.getBitmap().getHeight();
                 
                
float wRatio width bmapWidth;
                
float hRatio height bmapHeight;
                 
                
float ratioMultiplier wRatio;
                
                if (
hRatio wRatio) {
                    
ratioMultiplier hRatio;
                }
                 
                
int newBmapWidth = (int) (bmapWidth*ratioMultiplier);
                
int newBmapHeight = (int) (bmapHeight*ratioMultiplier);
                 
                
ImageView iView = (ImageViewfindViewById(R.id.iv_background);
                
iView.setLayoutParams(new LinearLayout.LayoutParams(newBmapWidthnewBmapHeight)); 

و این هم کدxml

کد پی‌اچ‌پی:
<LinearLayout
        android
:layout_width="fill_parent"
        
android:layout_height="fill_parent" >
 
        <
ImageView
            android
:id="@+id/iv_background"
            
android:layout_width="match_parent"
            
android:layout_height="wrap_content"
            
android:scaleType="fitCenter"
            
android:src="@drawable/test" />
    </
LinearLayout
 
(۱۳۹۴/۰۷/۰۳, ۱۱:۰۴ ق.ظ)'seven7up' نوشته: [ -> ]برای کد های جاوا شما میتونید از این کد استفاده کنید نمیدونم به کارتون بیاد یا نه ولی این کد تصویر رو به اندازه  صفحه نمایش فیت میکنه
کد پی‌اچ‌پی:
DisplayMetrics metrics = new DisplayMetrics();
                
getWindowManager().getDefaultDisplay().getMetrics(metrics);
                
int height metrics.heightPixels;
                
int width metrics.widthPixels;
                 
                
BitmapDrawable bmap = (BitmapDrawableMainActivity.this.getResources().getDrawable(R.drawable.test);
                
float bmapWidth bmap.getBitmap().getWidth();
                
float bmapHeight bmap.getBitmap().getHeight();
                 
                
float wRatio width bmapWidth;
                
float hRatio height bmapHeight;
                 
                
float ratioMultiplier wRatio;
                
                if (
hRatio wRatio) {
                    
ratioMultiplier hRatio;
                }
                 
                
int newBmapWidth = (int) (bmapWidth*ratioMultiplier);
                
int newBmapHeight = (int) (bmapHeight*ratioMultiplier);
                 
                
ImageView iView = (ImageViewfindViewById(R.id.iv_background);
                
iView.setLayoutParams(new LinearLayout.LayoutParams(newBmapWidthnewBmapHeight)); 
و این هم کدxml
کد پی‌اچ‌پی:
<LinearLayout
        android
:layout_width="fill_parent"
        
android:layout_height="fill_parent" >
 
        <
ImageView
            android
:id="@+id/iv_background"
            
android:layout_width="match_parent"
            
android:layout_height="wrap_content"
            
android:scaleType="fitCenter"
            
android:src="@drawable/test" />
    </
LinearLayout
 

 

سلامی دوباره . 
واقعا لطف کردید ، کدهاتون جواب داد . فقط چطوری باید کاری کرد که فرضا از طرف راست و چپ فاصله بگیره؟ هرچی margin و padding میزارم عمل نمیکنه . 

 
شما این کد رو نیز قرار بدید ببینبد جواب میده ؟

کد پی‌اچ‌پی:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENTLinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(چپبالاراستپایین);
imageView.setLayoutParams(lp); 
 
(۱۳۹۴/۰۷/۰۳, ۰۱:۴۲ ب.ظ)'seven7up' نوشته: [ -> ]شما این کد رو نیز قرار بدید ببینبد جواب میده ؟
کد پی‌اچ‌پی:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENTLinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(چپبالاراستپایین);
imageView.setLayoutParams(lp); 
 

 


متاسفانه تاثیری نداشت.
 
شما تصویر رو در LinearLayout قرار دادید چون بر اساس اون تنظیم میکنه ها
(۱۳۹۴/۰۷/۰۳, ۰۳:۵۶ ب.ظ)'seven7up' نوشته: [ -> ]شما تصویر رو در LinearLayout قرار دادید چون بر اساس اون تنظیم میکنه ها


 

تصویرم در اسکرول ویو قرار داره که وقتی داخل اسکرول ویو هست داخل لاینرلیوت هم قرار میگیره .

 اینم کدم : 
کد پی‌اچ‌پی:
ImageView iv3 = (ImageViewfindViewById(R.id.imageView3);
        
        
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENTLinearLayout.LayoutParams.WRAP_CONTENT);
        
lp.setMargins(10101010);
        
iv3.setLayoutParams(lp);