精华内容
下载资源
问答
  • 快来用WizTiles自定义您的手机屏幕吧! 创建任意颜色,任意图标,任意图片背景,并且可以加载您自己的主题用来装扮手机系统应用。 WizTiles支持众多任务和快捷方式,并且还在每天增加。使用Wiztiles创建的自定义...
  • 这几天在做一个拍照加水印的功能,开发的过程中要求可以横向拍摄,但是水印也要跟随着屏幕的方向,因为水印显示的是当前的经纬度,总不能说我把手机倒着,让文字也倒着显示吧,所以就要求写一个能跟着屏幕旋转的水印...

    这几天在做一个拍照加水印的功能,开发的过程中要求可以横向拍摄,但是水印也要跟随着屏幕的方向,因为水印显示的是当前的经纬度,总不能说我把手机倒着,让文字也倒着显示吧,所以就要求写一个能跟着屏幕旋转的水印控件。

    自定义控件的代码如下:

    public class WaterMarkView extends View {
    
        private Context mContext;
        private String mTime;
        private String mLocation;
        private Paint mPaint;
        private int mDegree;
        private float mPaintTextSize = 16;
    
        public WaterMarkView(Context context) {
            super(context);
            setWillNotDraw(false);
        }
    
        public WaterMarkView(Context context, AttributeSet attrs) {
            super(context, attrs);
            setWillNotDraw(false);
            this.mContext = context;
            mPaint = new Paint();
            mPaint.setAntiAlias(true);
            mPaint.setColor(mContext.getResources().getColor(R.color.mis_pink));
            mPaint.setTextSize(DisplayUtil.dip2px(mContext, mPaintTextSize));
            mPaint.setFakeBoldText(true);
            mPaint.setShadowLayer(1.6f, 1.5f, 1.3f, Color.BLACK);
        }
    
        public void setTvTime(String time) {
            this.mTime = time;
        }
    
        public void setTvLocation(String location) {
            this.mLocation = location;
        }
    
        public void setDegree(int degree) {
            this.mDegree = degree;
        }
    
        public void setTextSize(int size) {
            this.mPaintTextSize = size;
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            int width = ScreenUtils.getScreenWidth(mContext);
            int height = ScreenUtils.getScreenHeight(mContext);
            Log.i("sherry", "width=" + width + "height=" + height);
            switch (mDegree) {
                case 0:
                    canvas.rotate(0);
                    canvas.drawText(mTime, 60, height - mPaintTextSize / 16 * 120, mPaint);
                    canvas.drawText(mLocation, 60, height - mPaintTextSize / 16 * 60, mPaint);
                    break;
                case -90:
                    canvas.rotate(-90);
                    canvas.translate(-height, 0);
                    canvas.drawText(mTime, 120, width - mPaintTextSize / 16 * 120, mPaint);
                    canvas.drawText(mLocation, 120, width - mPaintTextSize / 16 * 60, mPaint);
                    break;
                case 90:
                    canvas.rotate(90);
                    canvas.translate(0, -width);
                    canvas.drawText(mTime, 120, width - mPaintTextSize / 16 * 120, mPaint);
                    canvas.drawText(mLocation, 120, width - mPaintTextSize / 16 * 60, mPaint);
                    break;
                case 180:
                    canvas.rotate(180, width / 2, height / 2);
                    canvas.drawText(mTime, 60, height - mPaintTextSize / 16 * 120, mPaint);
                    canvas.drawText(mLocation, 60, height - mPaintTextSize / 16 * 60, mPaint);
                    break;
            }
        }
    }
    

    项目下载地址:https://download.csdn.net/download/shan286/10417458

    展开全文
  • 简单自定义水平的ProgressBar带文字

    千次阅读 2017-10-25 11:52:56
    首先来看看实图 这里实现原理就是继承...首先获取手机屏幕的宽高,根据手机分辨率来定标准字体大小,这里采用的720x1080(比较通用) 获取进度,设置文字内容 最后就是onDraw绘制了 @Override protecte

    首先来看看实图


    这里实现原理就是继承ProgressBar重写onDraw方法,在ondraw里面用画笔绘制text


    首先初始化paint


    首先获取手机屏幕的宽高,根据手机分辨率来定标准字体大小,这里采用的720x1080(比较通用)



    获取进度,设置文字内容





    最后就是onDraw绘制了

    @Override
    protected synchronized void onDraw(Canvas canvas)
    {
        super.onDraw(canvas);
        Rect rect = new Rect();
        this.mPaint.getTextBounds(text, 0, text.length(), rect);
        this.mPaint.getTextBounds(text1, 0, text1.length(), rect);
        
        int progress = getProgress();
        int width = getWidth();
        
    /**以免getmax为0
        if (getMax() != 0)
        {
            int start = width / getMax() * progress;
            int end = width / getMax() * (getMax() - progress);
            int x_two = ((end / 2) + start) - rect.centerX();
            int x_one = (start / 2) - rect.centerX();
            int y = (getHeight() / 2) - rect.centerY();
            if (getProgress() == 0)
            {
                canvas.drawText(this.text1, x_two, y, this.mPaint);
            }
            else
            {
                canvas.drawText(this.text, x_one, y, this.mPaint);
                canvas.drawText(this.text1, x_two, y, this.mPaint);
            }
        }
    }
    到这里就完成了。
    代码下载地址http://download.csdn.net/download/lmy545x/10038852
    
    
       
    
    











    展开全文
  • 很多时候由于手机屏幕的显示,TextView

    很多时候由于手机屏幕的显示,TextView单行没法显示完全内容。如下所示:


    当点击3个点的时候,文字就会展开:



    对于这个需求,可以使用一个LinearLayout,orientation是horizontal,有两个TextView,一个显示内容,一个显示...

    <?xml version="1.0" encoding="utf-8"?>
    <merge xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/root" >
    
        <TextView
            android:id="@+id/mainText"
            android:layout_width="wrap_content"
            android:textSize="25sp"
            android:textColor="#000000"
            android:maxLines="10"
            android:layout_height="wrap_content"
            android:gravity="center_vertical|left"
             />
        <TextView
            android:id="@+id/mainDots"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25sp"
            android:textColor="#000000"
            android:gravity="center_vertical"
            android:text="..."
            android:linksClickable="true"
            android:visibility="gone"
            android:textAppearance="?android:attr/textAppearanceMedium"
           />
    
    </merge>

    在代码中,首先在在资源文件中声明这个view的属性:

     <declare-styleable name="ClickableTextView">
            <attr name="text" format="string" />
            <attr name="textStyle" format="string" />
            <attr name="textSize" format="dimension" />
            <attr name="textColor" format="color" />
            <attr name="maxLines" format="integer" min="0" />
            <attr name="textGravity" format="enum">
                <enum name="left" value="0" />
                <enum name="center" value="1" />
                <enum name="right" value="2" />
            </attr>
        </declare-styleable>

    显示在layout的时候可以这么写
      <com.example.clickabletextview.ClickableTextView  xmlns:am="http://schemas.android.com/apk/res/com.example.clickabletextview"
            android:id="@+id/textview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            am:text="aadsjklfsjflsdfjslkfsdfajfdsafnasjifnsdjiafnsifjnsdifjsndfsdjifnsdfjnsdsdjfsfdsfdsffjsdflksdf"
            am:textSize ="20sp"/>


    在ClickableTextVIew这个类里,我们先取到xml的属性:

    public ClickableTextView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		TypedArray a = context.obtainStyledAttributes(attrs,
    				R.styleable.ClickableTextView, 0, 0);
    		int n = a.getIndexCount();
    		for (int i = 0; i < n; i++) {
    			int attr = a.getIndex(i);
    			switch (attr) {
    			case R.styleable.ClickableTextView_textSize:
    				mTextSizePixel = a.getDimension(attr, DEFAULT_TEXT_SIZE);
    				break;
    			case R.styleable.ClickableTextView_textColor:
    				mTextColor = a.getColor(attr, DEFAULT_TEXT_COLOR);
    				break;
    			
    			case R.styleable.ClickableTextView_textStyle:
    				mTextStyle = a.getString(R.styleable.ClickableTextView_textStyle);
    				break;
    			case R.styleable.ClickableTextView_text:
    				defaultText = a.getString(R.styleable.ClickableTextView_text);
    				break;
    			}
    		}
    		a.recycle();
    		
    		init(context);
    	}


    然后把这些属性set给TextView,当赋值TextSize的时候,为了适配很多分辨率,我们要采用mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSizePixel)来赋值

    private void init(Context context) {
    		if(mRoot == null) {
    			mRoot = inflate(context, R.layout.customtext, this);
    		}
    		mRoot.setFocusable(true);
    		mRoot.setFocusableInTouchMode(true);
    		
    		mDots = (TextView) findViewById(R.id.mainDots);
    		mDots.setVisibility(View.GONE);
    		mDots.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSizePixel);
    		//mDots.setTextSize(mTextSize);
    		mDots.setTextColor(mTextColor);
    		mDots.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);	//
    		mDots.setOnClickListener(new View.OnClickListener() {
    			@Override
    			public void onClick(View v) {
    				if (!mExpanded)
    					onDotsClicked();
    			}
    		});
    		
    		mText = (TextView) findViewById(R.id.mainText);
    		if (BOLDSTYLE.equals(mTextStyle)) {
    			mText.getPaint().setFakeBoldText(true);
    		}
    		mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTextSizePixel);
    		//mText.setTextSize(mTextSize);
    		mText.setTextColor(mTextColor);
    		
    	}


    在onSizeChange的时候,这个view已经得到宽度了,这时我们把文字放入textview中:

    	@Override
    	protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    		super.onSizeChanged(w, h, oldw, oldh);
    		int width = w;
    		mTextWidth = width -3*getDotsWidth();
    		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mTextWidth, RelativeLayout.LayoutParams.WRAP_CONTENT);
    		mText.setSingleLine(true);
    		mText.setLayoutParams(params);
    		if(!TextUtils.isEmpty(defaultText)) {
    			setText(defaultText);
    		}
    	}
    
    	public void setWidth(int paddingLeft){
    		if(mIsSetWidth){
    			return;
    		}
    		mIsSetWidth = true;
    		this.mTextWidth = (mTextWidth-paddingLeft);
    		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mTextWidth, RelativeLayout.LayoutParams.WRAP_CONTENT);
    		mText.setSingleLine(true);
    		mText.setLayoutParams(params);
    	}
    	
    	private int getDotsWidth() {
    		TextPaint mPaint = mDots.getPaint();
    		return (int)mPaint.measureText(mDots.getText().toString());
    	}
    
    	public void setText(String text) {
    		if(mIsClicked){
    			return;
    		}
    		if(text == null) {
    			text = "";
    		}
    		mContent = text;
    		mExpanded = false;
    		mOriText = text;
    		mText.setText(mContent);
    		mText.measure(getMeasuredWidth(), getMeasuredHeight());
    		mDots.setVisibility(View.GONE);
    		String newText = getTruncText(mContent, mText);
    		if (newText.length() < mText.length()) {
    			mDots.setVisibility(View.VISIBLE);
    			mText.measure(getMeasuredWidth(), getMeasuredHeight());
    			newText = getTruncText(mContent, mText);
    			mText.setText(newText);
    		}
    	}<pre name="code" class="java"><span style="white-space:pre">	</span>private String getTruncText(String text, TextView view) {
    		final Paint textPaint = view.getPaint();
    		final int numChar = textPaint.breakText(text, true, mTextWidth, null);
    		return text.substring(0, numChar);
    	}

    
    



    这个原理是给TextView设置一个固定的宽度,然后让他加载文字,measure他,然后通过得到view.getPaint()得到这个view的绘制信息,然后可以得到这个TextView可以放多少个字符,得到之后跟原来的字符数对比,如果原来的字符多于可以放的下的字符,就显示...


    可以在http://download.csdn.net/detail/baidu_nod/7521021下载代码



    展开全文
  • 0u0又萌又好玩儿的一款表情小应用,连应用名都是颜文字哒~打开它后,整个手机屏幕上就会出现一个表情,你可以和它互动~比如:晃动下手机,它就会出现这样晕晕的表情点下眼睛,它就眨眼给你看捏捏小脸就这样,实在太...

    0u0

    又萌又好玩儿的一款表情小应用,连应用名都是颜文字哒~打开它后,整个手机屏幕上就会出现一个表情,你可以和它互动~

    比如:晃动下手机,它就会出现这样晕晕的表情

    38a864cb8d42cd6315c1f780d38b6153.png

    点下眼睛,它就眨眼给你看

    38a864cb8d42cd6315c1f780d38b6153.png

    捏捏小脸就这样,实在太犯规啦(ノ≧∀≦)ノ

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    应用很小,没事儿的时候来捏捏,蛮有趣哒(๑>ᴗ

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    颜文字Dongerlist

    应用情绪的分类挺细致哒,在想用的表情上点一下就复制好了,可以直接在其他地方粘贴使用。也可以将喜欢的收藏,方便使用~

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    颜文字Tictures

    这款应用里的颜文字分类较少,表情数量也并不多,使用的时候,可以直接复制,加入喜欢或是分享等,多了一个步骤,用起来不如上一款应用方便、但它的特点是包含大颜文,很有趣~

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    次元颜文字

    辣么多颜文字,但是也可能在需要用的时候发现,找不到想要的_(:зゝ∠)_次元颜文字的好处在于,可以自由组合颜文字,一键复制即可使用,也可以将它添加到键盘上,直接使用~摇晃下手机,还能出现随机表情呦~

    38a864cb8d42cd6315c1f780d38b6153.png

    38a864cb8d42cd6315c1f780d38b6153.png

    论卖萌泥萌是斗不过小美的,不服评论区来战 ╮( ̄⊿ ̄)╭" who 怕 who~

    38a864cb8d42cd6315c1f780d38b6153.png

    么!么!哒!(。・ω・。)ノ♡

    © 本文著作权归作者所有,并授权最美应用独家使用,未经最美应用官方许可,不得转载使用。

    展开全文
  • 1、资源准备 ①海报背景图(建议放在不要放在本地)、 ...①兼容屏幕大小的rpx转px的方法(手机屏幕有差异,canvas用的是px为单位) function createRpx2px() { const { windowWidth } = wx.getSystemInfoSync() ...
  • 厌倦了每种智能手机屏幕截图? 我也是 :grinning_squinting_face: :check_mark_button: 去做 自动化测试 背景色 在图像中插入文字 添加更多的android设备 :handshake: 贡献 欢迎贡献,问题和功能要求! ...
  • 心情非常沉重,仅以此篇文章纪念我摔碎的手机屏幕 偶然看到一篇文章,讲解了自定义密码输入框,直接上图: 很多的App都有这样的功能,一般实现这种输入框有以下几种方案: 实实在在的写了5个EditText,然后各种...
  • 手机屏幕有限,经常使用,方便显示更多功能。 在android 4.0之前对于系统的菜单可以显示选项图片, 但是在4.0之后通常无法直接显示菜单图片了。除非自己定义item <LinearLayout xmlns:android="http://
  • Android 自定义Toast

    2015-04-24 16:44:03
    提到Toast,大家一定很熟悉了,常常在网络连接不可用或者完成某个操作后,就会看到在手机屏幕的下方,显示出来一段提示文字,过一会儿又会自动消失。它就是Toast,跟Notification一样,也是一种android的消息提醒...
  • 由于手机屏幕的限制,在手机上输入文字并不太方便,一般使用手机都是通过在手机屏幕上单击按钮来完成操作,为了个人用户在访问微信公众号时获取更佳的体验,微信开发团队为微信公众平台增加了自定义菜单的功能. ...
  • 地图篇之百度地图各种自定义需求

    万次阅读 热门讨论 2016-07-06 14:05:13
    项目中的对地图的各种需求,实现方式。...需求4:只显示当前手机屏幕下的覆盖物,随着地图改变,所显示的覆盖物业随着改变 需求5:驾车路线搜索,自定义沿途进过的站点,添加途经点标志 需求6:找到当前最近的站点
  • 曾经见到过android实现win8风格的代码,但是布局的时候对各种尺寸的手机屏幕适配性不好,关键是不能使用android:scaleType="fitXY"这个保证图片裁切合适的语句。这里我自己写了一个新的代码,实现win8风格的同时,最...
  • AXURE原型手机屏幕滑动效果

    千次阅读 2018-03-18 12:14:32
    双击State1进入动态面板1里,在动态面板里再拖入一个动态面板,命名为“顶部菜单”宽375,高667,双击State1进入顶部菜单,设置需要的效果和文字。3.回到动态面板1里,再添加一个底部菜单,方法同上。效果如图所示4....
  • 手机屏幕像素而异,无法做到普遍适用。 dp:与像素密度密切相关,显示效果不会因手机屏幕不一样。 sp:相当于dp(用来修饰文字)。 dip = dp(以前使用dip单位)。 用法 文字的尺寸一律用sp单位。 非文字的尺寸...
  • 说起Toast,大家一定很熟悉了,常常在网络连接不可用或者完成某个操作后,就会看到在手机屏幕的下方,显示出来一段提示文字,过一会儿又会自动消失。它就是Toast,跟Notification一样,也是一种android的消息提醒...
  • 在智能手机中,主要的输入操作是通过触摸屏幕、重力感应等方式实现的,而输入文字主要通过虚拟键盘等实现 的。下面就让我们一起来学习触屏事件的使用。     一、触屏事件    在Cocos2D-X中,...
  • 微彩屏幕 v1.1.1

    2015-01-15 22:12:39
    微彩屏幕1.1.1 ...家庭聚会,婚礼,公司年会等,现场观众可通过微信向现场大屏幕发送文字、图片、视频、语音等,提升现场氛围,活动组织者可插播消息、现场抽奖、播放控制,或发送电视、网络视频到屏幕
  • 实现逻辑: 用户点击对话框的确定按钮,跳转页面的时候判断用户此前是否设置过手机防盗功能 ...4.滑动屏幕切换页面自定义文字风格 由于布局中有很多文字的颜色、字号、上边距、左边距等属性是相同的,因此,
  • 最新微信大屏幕互动系统PHP源码,红包...功能有:抽奖,签到墙,对对碰,投票,摇一摇,幸运手机号,砸金蛋,3D签到,微信上墙,抽奖箱,相册,弹幕文字,开幕墙,闭幕墙,所有功能处由关闭,上自定义背景图片或者视频.
  • 2、每个大屏幕都支持自定义背景、和背景有音乐功能,购买的客户将免费赠送背景素材包; 3、现场抽奖奖品支持同时设置多个奖品,并且可以设置每个奖品的顺序,方便根据奖品价值安排抽奖顺序,奖品支持实物和红包(); ...
  • 公司年会大屏幕抽奖

    2018-09-25 15:06:14
    更新:微信上墙成功后自动回复后可增加自定义文字。 2016.8.29 更新:增加了程序和服务器的兼容性 更新:增加了系统内置的后台帮助信息 新增:签到用户列表导出excel 新增:增加更新日志按钮,最新更新一目了然 2016.8....
  • 测试可用,内置公众号平台,平台搭建可直接使用,...功能有:抽奖,签到墙,对对碰,投票,摇一摇,幸运手机号,砸金蛋,3D签到,微信上墙,抽奖箱,相册,弹幕文字,开幕墙,闭幕墙,所有功能处由关闭,上自定义背景
  • 2、每个大屏幕都支持自定义背景、和背景有音乐功能,购买的客户将免费赠送背景素材包; 3、现场抽奖奖品支持同时设置多个奖品,并且可以设置每个奖品的顺序,方便根据奖品价值安排抽奖顺序,奖品支持实物和红包(); ...
  • 并且在制作led灯的时候,文字、滚动间隔时间、文字颜色、背景特效、音效等,全部都可以自定义设置,是大家追星必备神器;同时,想要表白的你,本款应用也是你的不二之选,直接手动操作,炫酷告别,还能提升表白成功...
  • 公司年会,为了找一个靠谱的微信上墙,太折腾了,这...功能有:抽奖,签到墙,对对碰,投票,摇一摇,幸运手机号,砸金蛋,3D签到,微信上墙,抽奖箱,相册,弹幕文字,开幕墙,闭幕墙,所有功能处由关闭,上自定义背景
  • 之前找了很久才找到了,传上来更大家共享下,希望对...功能有:抽奖,签到墙,对对碰,投票,摇一摇,幸运手机号,砸金蛋,3D签到,微信上墙,抽奖箱,相册,弹幕文字,开幕墙,闭幕墙,所有功能处由关闭,上自定义背景
  • 由于Android手机和普通Android平板电脑的屏幕尺寸有限,我们需要使用列表在有限的空间中显示足够都的内容。ListView非常容易使用,并且我们可以自定义ListView内部显示的列表项。在这个示例代码中,我将使用ListView...
  • 手机触摸板,可作为电脑的触摸板、键盘使用 主要功能 触摸控制鼠标,短按为单击,长按为拖拽 音量键可控制翻页 有文字输入功能 可用加速度传感器、陀螺仪控制鼠标,灵敏度可调 采用UDP广播寻找主机,避免输入IP的...
  • ○将手机(触摸)按键区/下边框改为一块触控区,保留原来的按键功能,增加手势操作,比如从左向右滑动(像Ubuntu那样调出左侧竖排的快捷方式栏),从右向左滑动(撤销修改,相当于ctrl + Z),从触控区向屏幕滑动...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 217
精华内容 86
关键字:

手机屏幕自定义文字