`
uule
  • 浏览: 6306612 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

控件使用问题

阅读更多

TextView最大长度限制,超出部分省略号显示

xml中属性设置:

 

<TextView  
	android:id="@+id/name"  
	android:layout_width="wrap_content"  
	android:layout_height="wrap_content"  
	android:ellipsize="end"  
	android:maxEms="7"  
	android:singleLine="true"  
	android:textColor="@color/text_deep_black_color"  
	android:textSize="15sp" /> 

 其中关键参数:

android:ellipsize="end"  

android:maxEms="7"  

android:singleLine="true"  

 

PS:设置maxLength达不到这个效果,maxLength不会自动显示省略号。

 

 

 

LinearLayout中组件右对齐

在LinearLayout中,如果将其定位方向设为横向排列:android:orientation="horizontal",那么这个布局中的控件将自左向右排列。

但有时会有这样的情况:行的左边有两个控制的同时,行的右边也有一个控制。

这怎么处理呢?

我们可以将右边的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐:android:gravity="right",还有一点,这个LinearLayout的宽度设为充满父控件: android:layout_width="fill_parent"。这样就行了。

 

完整的XML代码如下:

<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"  
    android:background="@drawable/bg"  
    android:orientation="horizontal" >  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="左边1" />  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:text="左边2" />  
    <!-- 将TextView包在另一个LinearLayout中  
         注意android:layout_width和android:gravity这两个属性  
     -->  
    <LinearLayout  
        android:layout_width="fill_parent"  
        android:layout_height="wrap_content"  
        android:gravity="right" >  
  
        <TextView  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:layout_marginRight="10dp"  
            android:text="右边" />  
    </LinearLayout>  
  
</LinearLayout> 

 

 

 android添加横线或竖线

横线:

<View  android:layout_height="1px"   
           android:layout_width="match_parent"  
           android:background="#66CCFF"    
/>  

 

竖线:

<View    
    android:layout_width="1dip"   
    android:layout_height="match_parent"  
    android:background="#66CCFF"  
    android:layout_gravity="center_horizontal"  
    />  

 

 Activity与Fragment之间的跳转:

 

(1)Fragment跳转到Activity:

startActivity(new Intent(getActivity(), Activity.class)); // 首先需要通过getActivity()方法获取到当前Activity

(2)Activity跳转到Fragment:

// Activity不能直接跳转到Fragment,需要先跳转到Fragment所附着的Activity中,然后再更改Activity当前显示哪个Fragment。

intert.putExtra("fragid",1); //首先在Activity跳转之前,在Intent中传入一个flag,用来标记跳转到哪一个Fragment。

// 然后根据flag来判断显示哪个Fragment

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // import android.support.v4.app.FragmentTransaction;

transaction.replace(R.id.frame_content, new CenterFragment());

transaction.commit();

 

 

RelativeLayout 显示、隐藏、移除

RelativeLayout layout = (RelativeLayout) findViewById(R.id.relative);

1)通过下面代码实现显示相对布局的内容

    layout.setVisibility(View.VISIBLE);

2)通过下面代码移除显示相对布局的内容

    layout.setVisibility(View.GONE);

3)通过下面代码隐藏显示相对布局的内容

layout.setVisibility(View.INVISIBLE);

 

setVisible(VIew.GONE);  //隐藏 并且不占用界面空间

setVisible(VIew.VISIBLE);  //控件显示

 

setVisible(VIew.INVISIBLE);  //控件隐藏 占用界面空间

 

 

android代码设置RelativeLayout的高度

private RelativeLayout relative;
relative = (RelativeLayout) findViewById(R.id.rlay_1);
ViewGroup.LayoutParams params=relative.getLayoutParams();
params.height =180; 
relative.setLayoutParams(params);

  

ImageView.ScaleType:

CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示

FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示

 

MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

 

layout_centerInParent与layout_centerHorizontal与layout_gravity的区别

是相对于RelativeLayout

android:layout_centerInParent="true"  --将控件置于父控件的中心位置

android:layout_centerHorizontal="true"  --该控价设置在相对于父控件水平居中的位置

android:layout_centerVertical="true"  --将控件置于垂直方向的中心位置

 

android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"

android:layout_alignParentTop="true"

android:layout_alignParentBottom="true

android:layout_centerInParent="true"

 

layout_gravity

针对LinearLayout的一种控件对齐方式,可以把值设置成下列值:

center_vertical、center_horizontal、center等等

 

gravity

 

控制控件内文字的对齐方式

 

RadioGroup的RadioButton中文字和图片的距离

android:button=@null;//将默认的button图片清空

android:drawableLeft=@drawable/radiobutton;//使用该属性定义button图片

android:background=@null;//将radioButton的背景设为空

 

android:drawablePadding=6dp;//将文字和左侧的button图片相距6dp

 

给LinearLayout设置点击事件

方法一:

1,在代码中加入如下代码,不然会被包含在其中的控件把焦点抢占,此时子控件无需设置clickable和focuseable

<RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="1"
			
            android:onClick="onClick"
            android:clickable="true" >

            ......
</RelativeLayout>

 

2,一方面可以在代码中find出来,添加监听器onClickListenner,另一方面也可以添加一个onClick()方法,在activity中实现指定的方法。以后者为例。在布局中必须加上代码android:onClick="onClick",其中等号右边的值,可以自定义为自己的方法,只是得在activity中提供此方法,类似onClick()。

3,activity的添加代码,如下

 

public void onClick(View v) {
        switch (v.getId()){
            case R.id.relativeLayout:
                System.out.println("整个布局被点击");
                break;
        }
    }

 

方法二:

<RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="1"
			
            android:focusableInTouchMode="true" >
            ......
</RelativeLayout>

 

1,在activity中find在添加OntouchLisenner方法

2,实现OntouchLisenner的Ontouch()方法

 

可能出现的问题

 

1,当把<RelativeLayout></RelativeLayout>嵌套在其他布局时,android:focusableInTouchMode="true"和android:clickable="true"不能同时设置。

 

2,当有多个<RelativeLayout></RelativeLayout>实现整体点击时,应当让activity实现OnClickListenner或OntouchListenner,不要单独的在给布局设置时new,即不要给每个布局setOnTouchListener(new ...);每个监听器都是新的很容易出现执行多次监听方法

 

 

判断imageview是否有图片或者是默认图片

Drawable.ConstantState frontState = iv_front.getDrawable().getCurrent().getConstantState();
if (frontState==null){
    AppContext.showToast("请上传图片");
    return;
}

 

 

。。。

分享到:
评论

相关推荐

    日历控件使用问题

    日历控件使用问题

    VB控件调用控件问题

    说明一下,如果把X和Y控件的源代码在B机器编译后再使用就没有问题 我在想是不是X控件在编译时指定了Y控件的ID号,如果把X,Y复制到B机器注册后对应的Y控件的ID号与X控件指定的Y控件的ID号不匹配,如果是这样的话,...

    DataGridView控件使用大全

    它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特性。 关于本文档: 本文档不准备面面俱到地介绍DataGridView,而是着眼于深入地介绍一些技术点的高级特性。 本文档按逻辑...

    通信控件MSComm使用详解

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

    解决WIN7系统中VS2010不能使用MSCOMM控件的问题

    解决WIN7系统中VS2010不能使用MSCOMM控件的问题

    跨浏览器控件SDK使用说明

    跨浏览器控件SDK使用说明 跨浏览器控件SDK V2.3.0.exe 控件支持现有高拍仪设备和定制设备 现在支持的功能: 1. 提供设备选择 2. 支持设备预览 3. 设置出图格式 4. 设置分辨率 5. 支持拍照功能 6. 获取拍照图像类型...

    C#_DataGridView控件使用全攻略

    C# DataGridView控件使用完全攻略 DataGridView是用于Windows Froms 2.0的新网格控件。它可以取代先前版本中DataGrid控 件,它易于使用并高度可定制,支持很多我们的用户需要的特性。 关于本文档: 本文档不准备...

    Tab控件使用时的问题图例

    Tab控件使用时的问题图例

    INDY控件使用指南

     Indy使用一个特殊的组件TIdAntiFreeze来透明地解决客户程序用户界面“冻结”的问题。TIdAntiFreeze在Indy内部定时中断对栈的调用,并在中断期间调用Application.ProcessMessages方法处理消息,而外部的Indy调用...

    解决EXCEL控件问题

    解决EXCEL控件问题,在win764位系统上不能使用excel控件。

    easyUI时间控件使用

    easyUI,时间控件,解决时间格式化问题

    日历控件的使用及详解

    日历控件的使用及详解,兼回答网友的一个问题,凑字

    ActiveX 控件导入程序

    这使您得以使用可应用于其他 Windows 窗体控件的同一设计时支持和编程方法论。若要承载 ActiveX 控件,必须生成从 AxHost 派生的包装控件。此包装控件包含基础 ActiveX 控件的一个实例。它知道如何与 ActiveX 控件...

    JS日历控件及其使用方法

    介绍:这是WalkingPoison根据梅花雨的日历控件修改发展出来的一个日历 ...2.针对用户反映的汉字和星期显示的问题,我把解决办法也写成文档,里面有详细解决办法,还有截图。 3.如果还是不能解决的话,可以联系我。

    QT 自定义控件编译与使用

    qt自定义控件编译和使用流程,以及在使用过程中遇到的一问题及需要注意的地方

    winform开发使用的DevExpress控件

    本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。本文主要通过给出相应的...

    linux下qt自定义控件创建使用方法

    学习创建和使用自定义控件写的试验代码,centos qt5.8可以使用。具体实现过程见我的文章:http://blog.csdn.net/csdn83419527/article/details/78870487 调试过程中出现的问题都有描述。另外控件代码用的lx100991的...

    SPIN控件的使用问题

    我的程序哪里错了为什么不能调节,,不知道哪里出错了,请大家看看,要写20字真是烦人

    WebBrowser控件的使用

    可以编译通过,但程序运行崩溃,可是找不出问题在哪里,上传源码,大家有兴趣可以看看

    MSComm控件使用详解

    MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下...

Global site tag (gtag.js) - Google Analytics