Android动态设置view的大小及其位置
来源:互联网 发布:比亚乔都市印象150数据 编辑:程序博客网 时间:2024/05/23 02:04
动态设置view的大小及其位置
需求就不说了,下面贴代码:
MainActivity
主要就是对view的操作,例如:
public class MainActivity extends Activity implements OnClickListener { private Button btn; private ImageView iv; private LinearLayout ll_group; public boolean isFullScreen = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { btn = (Button) findViewById(R.id.btn); iv = (ImageView) findViewById(R.id.iv); ll_group = (LinearLayout) findViewById(R.id.ll_group); btn.setOnClickListener(this); } @Override public void onClick(View v) { if (isFullScreen) { // 全屏转半屏 setViewSize(iv); isFullScreen = false; } else { isFullScreen = true; setViewFullScreen(iv); } } /** * 设置view的大小 * * @param iv2 */ private void setViewFullScreen(ImageView view) { MarginLayoutParams margin = new MarginLayoutParams(view.getLayoutParams()); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(margin); layoutParams.width = 1000 ; layoutParams.height = 800 ; view.setLayoutParams(layoutParams); } /** * 自定义设置位置及其大小 * * @param iv2 */ private void setViewSize(ImageView view) { MarginLayoutParams margin = new MarginLayoutParams(view.getLayoutParams()); int dpTop = dp2px( 10); int dpRight = dp2px( 10); int dpLeft=dp2px( 10); margin.setMargins(dpLeft, dpTop, dpRight, 0); DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(margin); layoutParams.width = 500; layoutParams.height= 400; view.setLayoutParams(layoutParams); } public int dp2px(float dpValue){ final float scale=MainActivity.this.getResources().getDisplayMetrics().density; return (int)(dpValue*scale+0.5f); }}
xml
<LinearLayout 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:orientation="vertical" > <LinearLayout android:id="@+id/ll_group" android:layout_height="400dp" android:layout_width="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/aa" /> </LinearLayout> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="button" /></LinearLayout>
注意事项
动态变化的view设置宽高属性时,指向的引用类型,应该是该view的父控件。否则将会报:
java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
MarginLayoutParams margin = new MarginLayoutParams(view.getLayoutParams()); /** *在xml中,view的父控件是LinearLayout这里要LinearLayout.LayoutParams. */ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(margin); layoutParams.width = 1000 ; layoutParams.height = 800 ; view.setLayoutParams(layoutParams);
1 0
- Android动态设置view的大小及其位置
- Android动态设置View的位置和大小
- android动态设置控件的大小和位置
- 动态设置(viewGroup)布局的位置、大小
- 【转】android:自定义layout动态改变view位置和大小
- android:自定义layout动态改变view位置和大小
- Android 动态指定屏幕朝向,动态设置控件位置大小
- Android-->View.setX()和.setY()的使用(移动布局,设置布局位置,动态添加View)
- Android 获取view的位置和设置view的位置
- 动态设置控件大小位置
- 代码中设置view的大小和位置
- 动态调整android控件(View)的大小
- Android代码中动态设置图片的大小(自动缩放),位置
- android自定义View设置大小的方法
- Android艺术开发探索学习 之 测量view的宽高 以及 动态设置View的位置
- Android艺术开发探索学习 之 测量view的宽高 以及 动态设置View的位置
- android控制view的大小和位置(一)
- android控制view的大小和位置(二)
- 给布局加上阴影
- 阿里云linux环境下搭建配置SVN
- 通过configSource提高web.config配置灵活性
- 支持wmv、mpg、mov、avi格式的网页视频播放代码
- JQuery学习笔记(3)
- Android动态设置view的大小及其位置
- ServletConfig对象
- Android systemUI移植
- Android6.0 旋转屏幕(四)应用强制设置方向
- 关于开关电源PCB设计中存在的问题
- P2P系统中的DHT算法分析
- 八个Docker的真实应用场景
- spring IOC
- wifi的两种工作模式