在Android中有时候我们需要动态改变控件的大小。有几种办法可以实现 一是在onMeasure中修改尺寸,二是在onLayout中修改位置和尺寸。这个是可以进行位置修改的,onMeasure不行。 还有一种是用LayoutParams来进行修改。前两种方法都需要你自定义控件,重载相关函数。二最后一种不需要重载。 今天,我要说的就是最后一种方法。先上代码: private void zoomInViewSize() { Viewimg1=findViewById(R.id.ImageView02); ViewGroup.LayoutParamslp=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;
下面附上代码: publicclassMainActivityextendsActivity{ protectedstaticfinalStringTAG=null; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //Inflatethemenu;thisaddsitemstotheactionbarifitispresent. getMenuInflater().inflate(R.menu.main,menu); returntrue; } publicvoidonClickZoomIn(ViewV) { zoomInViewSize(); } publicvoidonClickZoomOut(ViewV) { zoomOutViewSize(); } privatevoidzoomInViewSize() { Viewimg1=findViewById(R.id.ImageView01); ViewGroup.LayoutParamslp=img1.getLayoutParams(); lp.width*=2; lp.height*=2; img1.setLayoutParams(lp); } //xiao privatevoidzoomOutViewSize() { Viewimg1=findViewById(R.id.ImageView01); ViewGroup.LayoutParamslp=img1.getLayoutParams(); lp.width/=2; lp.height/=2; img1.setLayoutParams(lp); } }

<RelativeLayoutxmlns: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>




来自为知笔记(Wiz)

更多相关文章

  1. 利用Hierarchy Viewer优化布局 ---》android布局文件优化
  2. 采用原生控件+前端技术开发Android、iOS客户端
  3. Android控件系列之Button以及Android监听器
  4. android 自定义控件 圆形图片
  5. Android群英传读书笔记-----控件架构
  6. 学个明白--Android控件架构
  7. Android控件系列之Button以及Android监听器使用介绍
  8. android listview长按,单击各种事件捕捉
  9. Android(安卓)三种UI适配方案 dp px 修改dpi

随机推荐

  1. springboot+vue前后端分离项目
  2. [cobra]-强大的CLI应用程序库
  3. 订单和产品的多对多表关系在crudapi系统
  4. 你必须掌握的 21 个 Java 核心技术
  5. 华为麒麟990 5G芯片重磅发布!全球首个旗舰
  6. 程序员最大的遗憾:在大学时忽略了数学
  7. 最强深度学习优化器Ranger开源:RAdam+Look
  8. “高级工程师”没用!你应该成为一名 “成
  9. 数据科学家年薪12万美元算高吗?我爬取近6
  10. 20201112 装饰器之函数即变量