精华内容
下载资源
问答
  • 经常会遇到文字过长时,需要在结尾显示省略号,在此总结一下所有的设置方法。 解决方案(按照推荐级别从高到低排列): 一、如果控件独占一行 添加如下设置即可 android:ellipsize="end" android:lines="1" ...

    背景

    经常会遇到文字过长时,需要在结尾显示省略号,在此总结一下所有的设置方法。
    带省略号显示效果图
     

    解决方案(按照推荐级别从高到低排列):

    一、如果控件独占一行

    添加如下设置即可
     

    android:ellipsize="end"
    android:lines="1"
    

    二、如果控件需要相对于其他控件保持固定的距离

    除了上面的设置外,还需要想办法能确定控件的宽度.
    下面这个例子,通过layout_alignParentLeft让控件居于父控件左侧,同时让控件居于后方控件左侧(避免覆盖后方控件).
    样例代码:
     

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_height="wrap_content">
    
        <TextView
            android:id="@+id/tv_item_search_result_address"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/tv_distance"
            android:ellipsize="end"
            android:lines="1"
            android:text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />
    
        <TextView
            android:id="@+id/tv_distance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="5dp"
            android:lines="1"
            android:text="12345KM" />
    
    </RelativeLayout>
    

    三、如果上述两种方案不适用,可以设定固定宽度.

    • 方法1: 宽度采用wrap_content,设置maxEms。注意:maxEms不是任意字符的数量,是相当于对应数量大写M宽度。如果输入abc这样的字符,就可以输入超过maxEms的数量值。
      android:layout_width="wrap_content"
      android:maxLines="1"
      android:ellipsize="end"
      android:maxEms="5"
      

      方法2: 宽度采用wrap_content,设置maxWidth,超过此值,则显示省略号
       

      android:layout_width="wrap_content"
      android:maxLines="1"
      android:ellipsize="end"
      android:maxWidth="70dp"
      

      方法3: 设置layout_width为固定值。这种方式对比maxWidth的缺点是,无论textview实际由多少内容,都会占用这么大的地方。
       

      android:layout_width="70dp"
      android:maxLines="1"
      android:ellipsize="end"
      

      附录:

      Android中TextView内容过长未显示省略号的问题

      关注头条号,第一时间获取最新文章:

    展开全文
  • 用这种方法是和前端一样使用标签形式完成,但不是支持所有的功能,毕竟是textview,只支持一部分功能。 我只说简单使用功能,像加载图片那些比较复杂就不说了,毕竟还不如用别的方法呢。 下面上效果图 ...

    先祝大家新年快乐呀。

    写这个只是个人觉得Html的标签用起来比较方便的,直接拼接字符串就实现了,

    用这种方法是和前端一样使用标签的形式完成的,但不是支持所有的功能,毕竟是textview,只支持一部分功能。

    我只说简单使用的功能,像加载图片那些比较复杂的就不说了,毕竟还不如用别的方法呢。

    下面上效果图


    //这是一个标签元素:  <font color=#ff0000>" + "我是红色" + "</font>
    //错误使用示例   tv1.settext("我是默认背景色" + Html.fromHtml());
    //文案效果1  多色效果  可以一个标签标签使用
    Spanned strA = Html.fromHtml("我是默认背景色<font color=#ff0000>" + "我是红色" + "</font>我是默认背景色");
    tv1.setText(strA);
    //文案效果2  多色效果  也可以多个标签使用
    Spanned strB = Html.fromHtml("我是默认背景色<font color=#ff0000>" + "我是红色" + "</font>我是默认背景色<font color=#ff0000>" + "我是红色" + "</font>");
    tv2.setText(strB);
    //文案效果3  多色效果,并且加粗
    Spanned strC = Html.fromHtml("我是默认背景色  <strong><font color=#ff0000>" + "我是红色" + "</font></strong>  我是默认背景色");
    tv3.setText(strC);
    


    东西很少啊,也很简单,希望可以帮到大家。

    展开全文
  • 写一个安卓小程序时候发现我们需要显示一个气泡,气泡里面有图片和文字,这些都是动态改变所有我们绘制时候就会比较复杂,但是我们把这个Bitmap用TextView表示呢,就会发现这样表示是非常方便,只需要在...

    写一个安卓小程序的时候发现我们需要显示一个气泡,气泡里面有图片和文字,这些都是动态改变的,所有我们绘制的时候就会比较复杂,但是我们把这个Bitmap用TextView表示呢,就会发现这样表示是非常方便的,只需要在布局文件中加上个TextView,然后里面的东西自己设置,然后我们在MainActivity中添加个buildTextViewBitmap方法(如下)就好了。

    activity_main.xml:

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/id_age_and_gender"
        android:drawableLeft="@drawable/male"
        android:background="@drawable/hint"
        android:visibility="invisible"
        android:textColor="#ffff00ff"
        android:textSize="22sp"
        android:gravity="center"
        />

    MainActivity.java:

    private Bitmap buildTextViewBitmap(int age, boolean isMale) {
        TextView tv = mWaitting.findViewById(R.id.id_age_and_gender);
        tv.setText(age+"");
        if(isMale){
            tv.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.male), null, null, null);//设置Drawable显示在text的左、上、右、下位置
        }
        else{
            tv.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.female), null, null, null);
        }
        tv.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(tv.getDrawingCache());
        tv.destroyDrawingCache();
        return bitmap;
    }

    有时候传递上去的图片有大小限制的时候我们就会发现需要对Bitmap进行压缩,下面就是一个对图片进行压缩的方法。

    private void resizePhoto() {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;//true为不加载图片,只有宽高这类的数据
        BitmapFactory.decodeFile(mCurreatPhotoStr,options);
    
        double ratio = Math.max(options.outWidth*1.0d/1024f,options.outHeight*1.0d/1024f);//求出压缩比例(1024是代表不能超过1024,这个我们可以自己调节)
        options.inSampleSize = (int) Math.ceil(ratio);//把压缩比例传入options中
        options.inJustDecodeBounds = false;
        mPhotoImg = BitmapFactory.decodeFile(mCurreatPhotoStr,options);//压缩图片,mPhoto是压缩过后的Bitmap
    }
    展开全文
  • 安卓——Intent(实现页面跳转两种方法

    万次阅读 多人点赞 2018-02-27 17:35:00
    下图中两个不同的方法就是两种页面之间跳转情况1&gt;跳转不返回数据2&gt;跳转返回数据实例:第一种启动方式(跳转不返回数据)第二种启动方式(跳转返回数据)先看第一种:点击第一种启动方式按钮会出现...


    下图中两个不同的方法就是两种页面之间跳转的情况

    1>跳转不返回数据

    2>跳转返回数据



    实例:

    第一种启动方式(跳转不返回数据)

    第二种启动方式(跳转返回数据)

    先看第一种:


    点击第一种启动方式按钮会出现右边的图,然后再点击Button按钮返回左边的界面,TextView中的内容没变。

    再看第二种启动方式

    不同的是,点击Button按钮返回左边的界面,TextView中的内容变成了你好。



    下面是所有代码

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.lenovo.intent">
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
    
            </activity>
            <activity android:name="com.example.lenovo.intent.firstactivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name="com.example.lenovo.intent.Secondactivity">
    
            </activity>
        </application>
    
    </manifest>

    factivity

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
    
        <Button
            android:id="@+id/bt1__first"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第一种启动方式" />
    
        <Button
            android:id="@+id/bt2__second"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="第二种启动方式" />
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="吧第二个页面回传的数据显示出来" />
    
    </LinearLayout>
    

    sactivity

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />
    </LinearLayout>
    

    firstactivity.java

    package com.example.lenovo.intent;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    /**
     * Created by lenovo on 2018/2/27.
     */
    
    public class firstactivity extends Activity {
        private Button bt1;
        private Button bt2;
        private TextView tv;
        @Override
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.factivity);
    
            /*
               通过点击bt1实现界面之间的跳转
               1.通过startActivity的方式来实现
               1>初始Intent(意图)
             */
    
    
            bt1=(Button) findViewById(R.id.bt1__first);
            bt2=(Button)findViewById(R.id.bt2__second);
            tv=(TextView) findViewById(R.id.textView1);
            //给bt1添加点击事件
            bt1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    /*
                    第一个参数:上下文对象this
                    第二个参数:目标文件
                     */
                    Intent intent = new Intent(firstactivity.this,Secondactivity.class);
                    startActivity(intent);
    
                }
            });
    
            /*
            2.通过startActivityForResult的方式来实现
             */
            //给bt2添加点击事件
            bt2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent = new Intent(firstactivity.this,Secondactivity.class);
    
                    /*
                    第一个参数:Intent对象
                    第二个参数:请求的一个标识
                     */
                    startActivityForResult(intent,1);
                }
            });
        }
    
        /*
        通过startActivityForResult的方式接受返回数据的方法
        requestCode:请求的标志,给每个页面发出请求的标志不一样,这样以后通过这个标志接受不同的数据
        resultCode:这个参数是setResult(int resultCode,Intent data)方法传来的,这个方法用在传来数据的那个页面
         */
        @Override
        protected  void onActivityResult(int requestCode,int resultCode ,Intent data){
            super.onActivityResult(requestCode,resultCode,data);
            if(requestCode==1&&resultCode==2){//当请求码是1&&返回码是2进行下面操作
                String content=data.getStringExtra("data");
                tv.setText(content);
            }
        }
    }
    

    Secondactivity.java

    package com.example.lenovo.intent;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    /**
     * Created by lenovo on 2018/2/27.
     */
    
    public class Secondactivity extends Activity {
        private Button bt;
        String content="你好";//想返回的内容
        @Override
        protected void onCreate( Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.sactivity);
    
            /*
            第二个页面什么时候给第一个页面回传数据
            回传到第一个页面的实际上是一个Intent对象
             */
            bt=(Button) findViewById(R.id.button);
            bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent data = new Intent();
                    //name相当于一个key,content是返回的内容
                    data.putExtra("data",content);
                    //resultCode是返回码,用来确定是哪个页面传来的数据,这里设置返回码是2
                    //这个页面传来数据,要用到下面这个方法setResult(int resultCode,Intent data)
                    setResult(2,data);
                    //结束当前页面
                    finish();
                }
            });
        }
    }
    

    展开全文
  • View类是所有可视化控件基类,主要提供了控件绘制和事务处理的方法。 创建用户界面所使用控件都继承自View,如EditText、TextView、Button等。 View及其子类相关属性,既可以在布局XML文件中进行相关设置,也...
  • public class MainActivity extends Activity { List<Msg> list=new ...点击editText栏时候就会调用getView方法,我找了好三四天了始终没有找到问题根结,现在把所有java代码都贴上来了求帮我看看是哪里出问题
  • 比如说,一个工程中需要所有TextView的字体是安卓系统没有的字体,那么可以引入,引入方法不介绍了: 可以自定义该类: public class StyledTextView extends TextView { public static Typeface fontFace; ...
  • 安卓学习之View

    2011-11-10 11:33:00
    所有的配置属性也可以使用组件类中提供的方法进行配置 如果子类找不到可以到父类里去找 NO. 组件名称 描述 1 TextView 表示一个文本显示组件 2 Button ...
  • Method.invoke(Object, Object...) 行: 不可用 [本机方法] ZygoteInit$MethodAndArgsCaller.run() 行: 1230 ZygoteInit.main(String[]) 行: 1120 报错日志 04-11 10:03:01.957: E/...
  • 安卓成长记(二)

    2017-01-10 22:30:34
    安卓成长记(二)这里是介绍安卓的一些组件,也就是书上面第二章UI界面那一章。之前进行到FrameLayout时候去研究Handler消息机智了,现在回来。不是说View是所有组件父类么。是这样textview组件(就是...
  • 安卓学习第七天:View

    2015-04-21 22:30:31
    所有的控件都是view子类   #2两种方法控制控件中显示内容 1,代码文件,用java实现 2,布局文件,用xml实现 语句:textView=(TextView)TextViewByid(R.id.textView)   #3关于监听器 控件被点击了之类...
  • //添加卡片的方法 private void addCards( int cardWith,int cardHeight){ Count c; //遍历每一张卡片 for (int y = 0; y ; y++) { for (int x = 0; x ; x++) { c = new Count(getContext()); c.set...
  • 控件类概述 View类简介 View类是所有可视化控件基类,主要提供了控件绘制和时间处理的方法。创建用户界面所使用控件都继承自View,如TextView、Button。
  • * 取得用于显示给定分组视图,这个方法仅返回分组试图对象 * @param i * @param b * @param view * @param viewGroup * @return */ @Override public View getGroupView(final int i, boolean ...
  • 创建方法能扫描存储卡上所有mp3文件(采用递归算法) 用自定义应用程序类存放全局数据和方法 利用异步任务来完成耗时存储卡扫描工作 涉及知识点 标签(TextView) 按钮(Button) 媒体播放器(MediaPlayer) ...
  • |--安卓多线程断点上传 |--对话框与进度条结合用法 |--屏幕之Activity全屏 |--屏幕之横竖屏切换 |--屏幕之调节屏幕亮度 |--屏幕相关之Display类获取屏幕尺寸和分辨率 |--屏幕适配之ScrollView |--屏幕适配之像素...
  • ...我们学习安卓控件中的Textview,Button,redioButton,checkBox,等相关控件是使用,在安卓中呢,TextView是许多的App开发的必备控件,无论是大的项目还是小的项目都会有TextView的出现.... TextView的使用方法:在所有...
  • 创建方法能扫描存储卡上所有mp3文件(采用递归算法) 用自定义应用程序类存放全局数据和方法 利用异步任务来完成耗时存储卡扫描工作 说明:模拟器存储卡上目录少,扫描很快就完成,几乎看不到等待进度条,最好在...
  • 创建方法能扫描存储卡上所有mp3文件(采用递归算法) 用自定义应用程序类存放全局数据和方法 利用异步任务来完成耗时存储卡扫描工作 (二)所需知识点 标签(TextView) 按钮(Button) 媒体播放器(MediaPlayer)...
  • 下面是这种情况:我有一个动态生成一堆随机自定义...该方法获取这些变量并将它们设置为TextView(在同一个活动中),因此我认为所有按钮都可以使用这一个方法 . 如果这些按钮是在XML中定义,我会使用android:onCli...
  • SpannableString异常,ClassCastException,SpannableStringInternal.equals错误 bugly上报了很多这个错误,基本所有报错手机都是魅族,猜测魅族修改了...TextView的marquee跑马灯重复跳动、抖动、没滚动完就..
  • 1.创建方法能扫描存储卡上所有mp3文件(采用递归算法) 2.用自定义应用程序类存放全局数据和方法 3.利用异步任务来完成耗时存储卡扫描工作 说明:模拟器存储卡上目录少,扫描很快就完成,几乎看不到等待进度条,...
  • Android突击:定制控件

    2015-07-12 19:13:00
    安卓里,好多控件都是TextView的子控件容器类:布局类,其实也是个控件,不过他可以包含其他的控件。组合方式构建:1,在控件类中定义TextView和EditText类中2,在控件类的构造方法读取控件的属性3,根据控件属性...
  • //循环获取当前页之前的所有页面的宽度 for (int i=0;i;i++){ cursorX=cursorX+btnArgs[i].getWidth(); } cursor.setX(cursorX); } public class MyFragmentPagerAdapter extends ...
  • Android 上百实例源码分析以及开源分析 集合打包4

    千次下载 热门讨论 2012-07-10 21:54:03
    需要认真学习一下JadeAndroid编程(有聊天程序源码下载,都在下载包中),编译源码,需要到google 中申请 map api key,不过由于神奇国度制约原因,申请连接网站无法访问,需要通过其它的方法,比如代理...

空空如也

空空如也

1 2
收藏数 37
精华内容 14
关键字:

安卓textview的所有方法