安卓学习-界面-View和GroupView

所有的界面元素都是继承与View(如:ImageView 、Button等),布局继承于GroupView(如:LinearLayout等)

view的主要属性,这里直接是xml配置里写了,当然直接通过代码也是可以的

XML属性相关方法说明
android:alphasetAlpha(float alpha)

1. alpha值是从0~1的,比如0.5相当于透明50%,0相当于完全透明,1完全不透明

2. 3.0以下版本没有这个属性,因此只要设置了就相当于不透明,

3. 3.0版本以下可以用过view.getBackground().setAlpha(255)方法来设置透明度 0完全透明 255 不透明

 android:background 

setBackground(Drawable background);
setBackgroundColor(int color);
setBackgroundDrawable(Drawable background);
setBackgroundResource(int resid);

 该组件的背景色,可以使一个Drawable,color值或者Drawable的ID值,

setBackgroundDrawable新的SDK已经废弃了

 android:clickable setClickable(boolean clickable) 是否可以点击,true可以点击,false不允许点击
 android:contentDescription setContentDescription(CharSequence contentDescription) 组件的描述,也仅仅是描述而已
 android:drawingCacheQuality setDrawingCacheQuality(int quality)

网上解释:

设置绘图时半透明质量。有以下值可设置:auto(默认,由框架决定)/high(高质量,使用较高的颜色深度,

消耗更多的内存/low(低质量,使用较低的颜色深度,但是用更少的内存)。

如果用代码设置用下面这3个静态变量

View.DRAWING_CACHE_QUALITY_AUTO
View.DRAWING_CACHE_QUALITY_LOW

View.DRAWING_CACHE_QUALITY_HIGH

看了半天也没明白说的是什么意思,但看到网上有两个例子都是截屏的

    //截组件
    public Bitmap getView(View view){
        // 设置使用缓存绘图
        view.setDrawingCacheEnabled(true);
     view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_AUTO);
// 建立缓存 view.buildDrawingCache(); //必须调用copy,否则会包Can't compress a recycled bitmap Bitmap tmp = view.getDrawingCache().copy(Config.RGB_565, false); view.setDrawingCacheEnabled(false);; return tmp; } //截屏 public Bitmap getView(Activity activity) { View view = activity.getWindow().getDecorView(); // 设置使用缓存绘图 view.setDrawingCacheEnabled(true);
     view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_AUTO);
// 建立缓存 view.buildDrawingCache(); //必须调用copy,否则会包Can't compress a recycled bitmap Bitmap tmp = view.getDrawingCache().copy(Config.RGB_565, false); view.setDrawingCacheEnabled(false); return tmp; }

 

 android:fadeScrollbars setScrollbarFadingEnabled(boolean fadeScrollbars) 是否自动淡出滚动条,true:不拖动的时候,自动隐藏,false:一直显示着
 android:fadingEdge setVerticalFadingEdgeEnabled(boolean verticalFadingEdgeEnabled)

 网上解释:

设置拉滚动条时 ,边框渐变的放向。none(边框颜色不变),horizontal(水平方向颜色变淡),

vertical(垂直方向颜色变淡)。

试不出来

 android:fadingEdgeLength 没找到

网上解释: 

用来设置边框渐变的长度

试不出来

 android:focusable setFocusable(boolean focusable) 是否可以获得焦点,比如设置textedit为false,就无法选中输入文字了
 android:focusableInTouchMode setFocusableInTouchMode(boolean focusableInTouchMode)

在触摸模式下是否可以获得焦点

试了下发现如果focusable已经是false了,那么这个参数就无效了

 android:id setId(int id) 必须是@+id/*** 如:@+id/editText1,不要问我为什么
 android:isScrollContainer setScrollContainer(boolean isScrollContainer)  是否可以作为滚动容器使用
 android:keepScreenOn setKeepScreenOn(boolean keepScreenOn) 是否强制屏幕一直打开,除非是特殊设备,否则要被客户骂死,很快就没电了
 android:longClickable setLongClickable(boolean longClickable) 是否可以相应长单击时间,就是手指一直按着
 android:minHeight setMinimumHeight(int minHeight) 最小高度
 android:minWidth setMinHeight(int minHeight)最小宽度 
 android:nextFocusUp setNextFocusUpId(int nextFocusUpId)

按向上键时获得焦点的组件ID 

这4个获得焦点的方式是模拟器上测试的,然后通过键盘的上下左右来操作是没问题,

但真实手机上压根就没这上下左右,不知如何测试

android:nextFocusDown setNextFocusDownId(int nextFocusDownId)按向下键时获得焦点的组件ID
android:nextFocusLeftsetNextFocusLeftId(int nextFocusLeftId) 按向左键时获得焦点的组件ID
android:nextFocusRightsetNextFocusRightId(int nextFocusRightId)按向右键时获得焦点的组件ID
android:onClicksetOnClickListener(OnClickListener l)单击事件
android:padding setPadding(int left, int top, int right, int bottom)

 在组件的四边设置填充区域,且填充在自己内部的

设置后

android:paddingTop同上上边 
android:paddingBottom同上下边 
android:paddingLeft同上左边 
android:paddingRight同上右边 
android:rotation setRotation(float rotation)

组件的旋转角度,比如45度

android:rotationX setRotationX(float rotation)按X轴旋转,往里面转了45度
android:rotationY setRotationY(float rotation)按Y轴旋转 ,往右边转了45度,XY都设置45度
 android:saveEnabled setEnabled(boolean enabled)

 默认是true的,如果是true那么在屏幕旋转的时候会保存值,比如:EditText,如果设置了true那么屏幕旋转时里面输入的内容还会保留,如果输入了false,则直接变空了

但是我试了下上面的rotation旋转,好像都没效果

android:scrollXsetScrollX(int value)以像素为单位设置水平方向滚动的的偏移值,在GridView中可看的这个效果。
android:scrollYsetScrollY(int value)以像素为单位设置垂直方向滚动的的偏移值,在GridView中可看的这个效果。
android:scaleXsetScaleX(float scaleX)水平方向缩放
android:scaleYsetScaleY(float scaleY)垂直方向缩放
android:scrollbarAlwaysDrawVerticalTrack  是否总是显示垂直滚动条的轨道,测试无效
 android:scrollbarAlwaysDrawHorizontalTrack  是否总是显示水平滚动条的轨道,测试无效
 android:scrollbarDefaultDelayBeforeFade setScrollBarDefaultDelayBeforeFade(int scrollBarDefaultDelayBeforeFade)值是秒,多少毫秒后滚动条自动隐藏
 android:scrollbarSize setScrollBarSize(int scrollBarSize) 滚动条宽度
 android:scrollbarStyle

 setScrollBarStyle(int style)

style

View.SCROLLBARS_INSIDE_OVERLAY
View.SCROLLBARS_INSIDE_INSET
View.SCROLLBARS_OUTSIDE_OVERLAY
View.SCROLLBARS_OUTSIDE_INSET

scrollbar样式 

insideOverlay:默认值,表示在padding区域内并且覆盖在view上

insideInset:表示在padding区域内并且插入在view后面

下面2个效果好像都一样,推荐用outsideOverlay

outsideOverlay:表示在padding区域外并且覆盖在view上

outsideInset:表示在padding区域外并且插入在view后面

android:scrollbarThumbVertical 

垂直滚动条对应的drawable

android:scrollbarThumbHorizontal 水平滚动条对应的drawable
android:scrollbarTrackVertical 

垂直滚动条轨道对应的drawable(就是滚动条滑动下面的区域)

android:scrollbarTrackHorizontal 水平滚动条对应的drawable(就是滚动条滑动下面的区域)
android:scrollbars 定义滚动时显示滚动条 三种:none、horizontal、vertical ,不显示滚动条,不代表不能滚动
android:soundEffectsEnabledsetSoundEffectsEnabled(boolean soundEffectsEnabled)该组件被单击是是否有音效
android:tagsetTag

给这个组件定义一个标记,类似id,但这个一般是文字说明,可以通过getTag获取值,

可以通过findViewWithTag(Object tag)获取这个组件

android:transformPivotXsetPivotX(float pivotX)

这几个由于对图片处理不是很了解,只试了下效果

该组件旋转时X轴的坐标,一般和android:rotationX 配合使用

android:transformPivotYsetPivotY(float pivotY)该组件旋转时Y轴的坐标
android:translationXsetTranslationX(float translationX)设置该组件在X方向上的位移,比如比原位置向右偏移100
android:translationYsetTranslationY(float translationY)设置该组件在Y方向上的位移
android:visibility

setVisibility(int visibility)

View.VISIBLE

View.INVISIBLE

View.GONE

该组件是否显示,有3个参数

visible:一直显示

invisible:没显示,但是还占着位置

gone:什么都没有,和没创建一样

ViewGroup

android:layout_width 

//动态设置framelayout的高宽、边距
//获取布局
RelativeLayout ll=(RelativeLayout)findViewById(R.id.linearLayout1);
//创建LayoutParams,同时设置高宽
FrameLayout.LayoutParams layoutParam =
new FrameLayout.LayoutParams(ViewGroup.MATCH_PARENT, ViewGroup.MATCH_PARENT);
//设置边距左25、上100、右12、下50
layoutParam.setMargins(25, 100, 12, 50);
ll.setLayoutParams(layoutParam);

设置组件的宽度、高度

match_parent:使长度或宽度与父容器的长度和宽度相同

wrap_content:写死组件的宽度或者长度

android:layout_height
android:layout_marginTop

设置组件的上下左右边距

android:layout_marginTop="100dp"
android:layout_marginBottom="50dp"
android:layout_marginLeft="25dp"
android:layout_marginRight="12dp"

android:layout_marginBottom
android:layout_marginLeft
android:layout_marginRight
   

 

 

简单实例,点击切换图片

public class MainActivity extends Activity {

    //
    ImageView iv;
    // 显示图片索引
    int index = 0;
    // 图片资源
    int[] images = new int[] { R.drawable.pic1, R.drawable.pic2,
            R.drawable.pic3, R.drawable.pic4, R.drawable.pic5 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        iv = (ImageView) findViewById(R.id.imageView1);
        // 设置默认图片
        iv.setImageResource(images[index]);
        // 双击显示下一张图片
        iv.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                index = (index + 1) % images.length;
                iv.setImageResource(images[index]);
            }
        });
    }
}

 

转载于:https://www.cnblogs.com/weijj/p/3894406.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值