1. 程式人生 > >Android中動態改變控制元件的大小的一種方法

Android中動態改變控制元件的大小的一種方法

    在Android中有時候我們需要動態改變控制元件的大小。有幾種辦法可以實現  一是在onMeasure中修改尺寸,二是在onLayout中修改位置和尺寸。這個是可以進行位置修改的,onMeasure不行。 還有一種是用LayoutParams來進行修改。前兩種方法都需要你自定義控制元件,過載相關函式。二最後一種不需要過載。 今天,我要說的就是最後一種方法。先上程式碼: privatevoid zoomInViewSize()     {         View img1 = findViewById(R.id.ImageView02);         ViewGroup.LayoutParams  lp = img1.getLayoutParams();
        lp.width *=2;         lp.height *=2;          img1.setLayoutParams(lp);     } 這是說把View的大小該為原來的大小的兩倍大小。剛剛開始的時候,我測試不成功,其原因在於我的View的大小在佈局檔案中是 wrap_content的,這樣,乘以2就沒有效果了。有兩種辦法,一是在佈局中將View的大小設定為一個固定尺寸。第二種是在這裡 我們的lp.width和lp.height設定一個固定尺寸。不要再原來的基礎上進行乘法和除法。但是你可以進行減法或加法的操作。 像這個樣子:         lp.width
 +=100;
        lp.height +=100;  下面附上程式碼: publicclass MainActivity extends Activity {     protected static final String TAG = null;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);     }     @Override
    public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }     public void onClickZoomIn(View V)     {         zoomInViewSize();     }     public void onClickZoomOut(View V)     {         zoomOutViewSize();     }     private void zoomInViewSize()     {         View img1 = findViewById(R.id.ImageView01);         ViewGroup.LayoutParams  lp = img1.getLayoutParams();         lp.width *=2;         lp.height *=2;          img1.setLayoutParams(lp);     }     //xiao     private void zoomOutViewSize()     {         View img1 = findViewById(R.id.ImageView01);         ViewGroup.LayoutParams  lp = img1.getLayoutParams();         lp.width /=2;         lp.height /=2;          img1.setLayoutParams(lp);     } } <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context=".MainActivity" >     <ImageView         android:id="@+id/ImageView01"         android:layout_width="80dp"         android:layout_height="100dp"         android:layout_alignParentLeft="true"         android:layout_alignTop="@+id/imageView1"         android:src="@drawable/ic_launcher" />     <Button         android:id="@+id/button1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignLeft="@+id/ImageView01"         android:layout_alignParentBottom="true"         android:layout_marginBottom="47dp"         android:layout_marginLeft="14dp"         android:onClick="onClickZoomIn"         android:text="ZoomIn" />     <Button         android:id="@+id/button2"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignBaseline="@+id/button1"         android:layout_alignBottom="@+id/button1"         android:layout_toRightOf="@+id/imageView1"         android:onClick="onClickZoomOut"         android:text="ZoomOut" /> </RelativeLayout>

相關推薦

Android動態改變控制元件大小方法

    在Android中有時候我們需要動態改變控制元件的大小。有幾種辦法可以實現  一是在onMeasure中修改尺寸,二是在onLayout中修改位置和尺寸。這個是可以進行位置修改的,onMeasure不行。 還有一種是用LayoutParams來進行修改。前兩種方法都

Android在java程式碼動態改變控制元件或者佈局寬高

有時候,在xml檔案中設定佈局已經不能滿足我們的需求,我們需要在java程式碼中動態進行佈局。這就涉及到一個寬高適配的問題。可以通過獲取螢幕的寬高,通過螢幕寬高的相對比例對控制元件和佈局的寬高進行設定:

Android 動態設定控制元件高寬

在Android中,像文字,按鈕這種控制元件我們可以直接用setWidth和setHeight,但是某些控制元件比如說ImageView,ImageViewButton等等,可以在佈局檔案中設定android:layout_width="xx",但是並沒有提供setWidt

c#winform跨執行緒操作控制元件方法,InvokeRequired

  在winform裡面如果有建立新執行緒的話,線上程裡面直接操作控制元件或修改控制元件的屬性是不允許的,雖然有辦法讓程式執行時忽略跨執行緒可能產生的問題,從而解決;但是從科學的角度看,該辦法並不可取,所以我就用了InvokeRequired的辦法解決跨執行緒操作問題。  

C# 獲取aspx頁面所有隱藏控制元件的兩方法

適合.NET4.0 以上版本 /// <summary> /// 獲取ASPX頁面中隱藏post值 Viewstae 等 /// </summary> /// <param name="Url"></para

android 在java程式碼動態設定控制元件的位置和設定片大小

需要動態改變佈局裡面控制元件的相對位置 如: 1.改變RelativeLayout佈局裡面某個控制元件的layout_toLeftOf 的屬性 RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)view

android 動態改變控制元件位置和大小

動態改變控制元件位置的方法: setPadding()的方法更改佈局位置。 如我要把Imageview下移200px:             ImageView.setPadding( ImageView.getPaddingLeft(),  ImageView.get

VC自動改變控制元件位置和大小的對話方塊類

lxDialog.h檔案: ///////////////////////////////////////////////////////////////////////////////////// // 自動改變控制元件位置和大小的對話方塊類 // 檔名:lxDialog.h //

android 動態設定控制元件大小

ImageView view = new ImageView(context);view.setLayoutParams(new LinearLayout.LayoutParams(30, 30)); view.setpadding(0,0,0,0); LayoutP

Android 開發,JAVA動態設定控制元件大小

在我們的實際android開發中,我們經常需要對控制元件進行設定。在xml中設計大小,我們大家都很熟悉。那麼,使用java動態設定控制元件大小,該如何寫呢。以下是我寫的方法: /** * 設定控制元件大小 * @param view 控制元件

Android動態改變ImageView大小

在layout.xml檔案中定義了ImageView的絕對大小後,無法動態修改以後的大小顯示,其實Android平臺在設計UI控制元件時考慮到這個問題,為了適應不同的Drawable可以通過在xml的相關ImageView中加入android:scaleType="fitXY

Android使用ImageView控制元件顯示網路圖片

在android4.0以後的版本中,為了使得主介面流暢,所以設定了不允許在主執行緒中訪問網路,為了安全,又不允許在其它執行緒中訪問控制元件,這樣就造成了ImageView等需要使用網路的控制元件更新時的問題,本文以Handler+Runnable的方式實現了ImageView控制元件顯示網路圖片.

dialog自定義樣式,程式碼動態改變位置及大小

dialog自定義的樣式屬性 <style name="wait_dialog_style" parent="@android:style/Theme.Dialog"> &l

Android自定義控制元件SegmentedGroup

GitHub:https://github.com/Kaopiz/android-segmented-control 一 、新增依賴 implementation 'info.hoang8f:android-segmented:1.0.6' 二、佈局中使用 <info.hoan

AndroidfindViewById()獲取控制元件後 報 空指標 錯誤

今天再做一個程式時,發現我使用findViewById(R.id.edit)獲取EditText時總是報空指標錯誤,我想不可能啊!! 最後從findViewById()下手,才發現原來此方法中的R.id.edit是從當前Activity或者Dialog的主佈局檔案xml中獲

android 如何設定控制元件的字型和背景樣式

1.設定背景圖片,圖片來源於drawable; button.setBackgroundDrawable(getResources().getDrawable(R.drawable.search_l

Android 為RecyclerView控制元件新增分隔線

在上一篇 RecyclerView 控制元件的文章中,我們看了一下ListView控制元件和RecyclerView控制元件的簡單用法,那麼下面我們將關注點放在RecyclerView上,畢竟RecyclerView控制元件在很多方面確實比ListView控制元

Sendmessage改變控制元件大小

=============================== 這個是在編寫動態控制元件中用到的,作者不知道是誰了 =============================== 在VB中,BorderStyle屬性為0的窗體沒有邊框,並且也沒有與邊框相關的元素。這種窗體具

Android的獲取控制元件矩陣gethitrect方法

原文地址:http://souly.cn/%E6%8A%80%E6%9C%AF%E5%8D%9A%E6%96%87/2015/07/31/Android%E4%B8%AD%E7%9A%84%E8%8E%B7%E5%8F%96%E6%8E%A7%E4%BB%B6%E7%9F%

Android自定義控制元件

作為一個有創意的開發者,或者軟體對UI設計的要求比較高,你經常會遇到安卓自帶的控制元件無法滿足你的需求的情況,這種時候,我們只能去自己去實現適合專案的控制元件。同時,安卓也允許你去繼承已經存在的控制元件或者實現你自己的控制元件以便優化介面和創造更加豐富的使用者體驗。 那麼