精华内容
下载资源
问答
  • 在使用 vue-cordova 打包成apk的时候,我们一定会根据项目改把app的图标还有显示文字,加载图片也有可能改动,这里来说一说这个。 1. 修改显示文字 地址:D:\cordova-app\config.xml 修改name里面的文字 2. ...

    前言:

           在使用  vue-cordova 打包成apk的时候,我们一定会根据项目改把app的图标还有显示文字,加载图片也有可能改动,这里来说一说这个。

    1. 修改显示文字  

    地址: D:\cordova-app\config.xml

    修改name里面的文字

    2. 修改图标

    地址:D:\cordova-app\platforms\android\app\src\main\res

    (1)打开以后可以看到这个界面:

    (2)这里涉及了6种尺寸,36*3648*4872*7296*96144*144

    (3)挨个打开mipmap开头的文件夹,把里面的图片更换成我们的新图片

    3. 修改启动图,打开替换图片

     

    展开全文
  • 我们经常会看到很多APP会有一个截图的功能,虽然现在很多手机本身已经有截图的功能了,但是截图后不能加水印,这也是不小的麻烦,今天我们聊聊怎么截图APP当前界面自己想要的内容,并且加上水印后保存。先看看我们的...

    我们经常会看到很多APP会有一个截图的功能,虽然现在很多手机本身已经有截图的功能了,但是截图后不能加水印,这也是不小的麻烦,今天我们聊聊怎么截图APP当前界面自己想要的内容,并且加上水印后保存。

    先看看我们的总体界面的效果。

    这里写图片描述

    这个就是在我点击保存按钮后保存图片的效果截图。下方是加了一个文字水印,当然我们还可以实现图片水印。

    这一次我们就采用循序渐进的方式来一步步探索这一个功能。先看怎么截图和保存。

    我先谈谈思路,既然是一张截图,那首先就是一张图,任何一张图都有宽和高,这是基本属性,那么这个宽跟高是什么呢?就是我们所要的内容的高和宽,我们直接计算整个父级容器的高宽即可,然后这里要介绍一个系统的方法:

    Bitmap.createBitmap(width, height, config)

    看名字就很清楚了,原来这个是创建一个Bitmap,那就好办了,这里需要传入高、宽、还有一个bitmap的配置,这里我们直接传入Bitmap.Config.ARGB_8888。

    然后调用父级容器的draw方法绘制就行了。完整的代码是:

        /**
         * 把布局转换成bitmap
         * @param scrollView
         * @return bitmap
         */
        public  Bitmap getBitmapByView(ScrollView scrollView) {
            Bitmap bitmap = null;
            // 创建对应大小的bitmap
            bitmap = Bitmap.createBitmap(scrollView.getWidth(), scrollView.getHeight(),
                    Bitmap.Config.ARGB_8888);
            final Canvas canvas = new Canvas(bitmap);
            scrollView.draw(canvas);
            // 测试输出
            FileOutputStream out = null;
            try {
    
                out = new FileOutputStream("/sdcard/screen_test.png");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            try {
                if (null != out) {
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
                    out.flush();
                    out.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return bitmap;
        }

    我们这里的父级容器是ScrollView ,所以使用的是ScrollView 的宽、高。另外我这里模拟了一下保存,看不懂也没关系,实际并没用上。

    下面看看我们是怎么执行保存操作的。

        /**
         * 保存图片至/sdcard/myFolder文件夹下
         * @param bmp
         */
        public  void saveCroppedImage(Bitmap bmp) {
            File file = new File("/sdcard/myFolder");
            if (!file.exists())
                file.mkdir();
            long time= System.currentTimeMillis();
    
            file = new File("/sdcard/"+time+".jpg".trim());
            String fileName = file.getName();
            String mName = fileName.substring(0, fileName.lastIndexOf("."));
            String sName = fileName.substring(fileName.lastIndexOf("."));
    
            newFilePath = "/sdcard/myFolder" + "/" + mName + sName;
            file = new File(newFilePath);
            try {
                file.createNewFile();
                FileOutputStream fos = new FileOutputStream(file);
                bmp.compress(CompressFormat.JPEG, 50, fos);
                fos.flush();
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    这里是一个保存的操作了,把刚刚生成的bitmap传入这个方法就可以了,不是很难,我们学文件操作的时候都接触过,我这里是把文件保存在了/sdcard/myFolder目录下,这个目录可以自定义,另外我这里的文件名是采用当前的系统时间加上后缀名。

    文件截图跟文件保存都有了,下面可以看看怎么生成水印了,先看看生成生成照片的水印。看看代码:

        /**
         * 有水印的保存
         * @param photo 当前截图的bitmap
         * @param mark 水印的图片
         * @param image 控件
         * @return
         */
        public Bitmap addTagUtil(Bitmap photo){
            Bitmap photoMark = Bitmap.createBitmap(photo.getWidth(), photo.getHeight(), Config.ARGB_8888);  
            Bitmap mark= BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher);  
            Canvas canvas = new Canvas(photoMark);  
            canvas.drawBitmap(photo, 0, 0, null);  
            Bitmap bitmapMark =mark.copy(Bitmap.Config.ARGB_8888, true);
            canvas.drawBitmap(bitmapMark, photo.getWidth() - bitmapMark.getWidth()-10, photo.getHeight() - bitmapMark.getHeight(), null);  
            canvas.save(Canvas.ALL_SAVE_FLAG);  
            canvas.restore();  
            return photoMark;
        }

    这里实际上也是在创建一个bitmap,只是我们用canvas去绘制的时候有重叠的部分。一般的,水印都是在图片的右下角,所以我们也是按照套路来。这个方法返回的bitmap就是一个已经有图片水印的bitmap了,同样可以调用saveCroppedImage(bitmap)来保存。

    接下来再看看绘制有文字水印的截图:

        /** 
         * 添加文字到图片,类似水印文字。 
         * @param gContext 
         * @param gResId 
         * @param gText 
         * @return 
         */  
        public  Bitmap drawTextToBitmap(Bitmap bitmap, String gText) {  
            Resources resources = mContext.getResources();  
            float scale = resources.getDisplayMetrics().density;  
    
            android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();  
            if (bitmapConfig == null) {  
                bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;  
            }  
            bitmap = bitmap.copy(bitmapConfig, true);  
    
            Canvas canvas = new Canvas(bitmap);  
            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  
            paint.setColor(Color.parseColor("#458EFD"));  
            paint.setTextSize((int) (3 * scale*5));  
            paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);  
            Rect bounds = new Rect();  
            paint.getTextBounds(gText, 0, gText.length(), bounds);  
            int x = (bitmap.getWidth() - bounds.width())/10*9 ;  
            int y = (bitmap.getHeight() + bounds.height())/10*9;  
            canvas.drawText(gText, x , y, paint);  
    
            return bitmap;  
        }  

    可以看到这实际上也是一个套路,我们把文字传进去,在前面我们讲自定义View的时候接触过很多绘制文字的操作,所以我觉得也不需要再去解释怎么绘制文字了。同样的这里返回一个bitmap,那么这个bitmap就是带有文字的水印了。

    当然,为了让截图效果更逼真,我们还可以加上一个属性动画:

    
    /**
     * 定义动画
     * @param mBg 父级容器
     * @param mImage 将要显示的图片控件
     * @param bitmap 图片
     */
        public  void startAnim(final LinearLayout mBg,final ImageView mImage,final Bitmap bitmap){
            //设置为半透明
            mBg.setBackgroundColor(Color.parseColor("#e0000000"));
    
            PropertyValuesHolder values1=PropertyValuesHolder.ofFloat("alpha", 0f,1f,0.5f);
            PropertyValuesHolder values2=PropertyValuesHolder.ofFloat("scaleX", 1,3/4f);
            PropertyValuesHolder values3=PropertyValuesHolder.ofFloat("scaleY", 1,3/4f);
            ObjectAnimator animator=ObjectAnimator.ofPropertyValuesHolder(mImage, values1,values2,values3);
            animator.setDuration(1000);
            animator.setInterpolator(new DecelerateInterpolator());
            animator.start();
    
            animator.addListener(new AnimatorListener() {
    
                @Override
                public void onAnimationStart(Animator arg0) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animator arg0) {
                    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void onAnimationEnd(Animator arg0) {
                    mImage.setVisibility(View.INVISIBLE);
                    //重置背景
                    mBg.setBackgroundColor(Color.parseColor("#00000000"));
    
                }
    
                @Override
                public void onAnimationCancel(Animator arg0) {
                    // TODO Auto-generated method stub
    
                }
            });
        }

    这样就可以实现截图的功能了。下面我贴上全部代码:

    布局文件:

    <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"
        tools:context="com.example.ssssss.MainActivity" >
    
        <TextView
            android:id="@+id/save"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#458EFD"
            android:gravity="center"
            android:padding="10dip"
            android:text="保存"
            android:textColor="#ffffff"
            android:textSize="20sp" />
    
        <ScrollView
            android:id="@+id/mScrollview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#eeeeee" >
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
    
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical" >
    
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:padding="20dip"
                        android:text="花淡淡,水悠悠,叶田田。那又是谁斑驳了这绝世的花颜,携一帘幽梦,
                盈一袖轻云,掬一滴清泉,揽一缕清风,娴静优雅,柔情缱绻,尾随而来?莲花初开,微风徐来,沁心的荷香,
                诗意了岁月,徜徉了人间,嗅着这若有若无的淡淡荷花香,一股通灵的感觉如游丝般慢慢的浸润了心扉,
                躁动的心儿也仿佛跟着悄然安静了下来。
    “陌上欣欣青绿邈,岁岁年年,轮转无终了。”那又是谁蹙一弯峨眉,流转于潋滟碧波;嬉一袭水袖,惊鸿在风尘阙歌?逸动的涟漪,惑起的水滴,风动荷香,花开莲池。那又是谁羞答答的捧起那一宛粉,一宛白,以珠水空灵的韵味勾勒出那娓娓垂涎流香?风过,心头一抹芬芳,指尖一缕余香。是莲花开了吗?是莲花她处处开了吗? 那我为何只见花开,不见你来?
    少时,小雨随风而至。倾时,云水之巅,清风细雨,烟雾迷弥,翠玉轻翻,红粉留痕,氤氲的莲池瞬时漾起一行行醉人的音符。“蕊中千滴泪,心里万条丝。”滴滴细雨,悠悠情思,那淡淡风痕处,款款崖暖时,你可晓莲花她已处处开?氤氲烟雨中,毓秀淡雅刻,那你又可懂迷离了谁的清波凝眸?馨香的花瓣,百年的凝望,千年的等待,“荷花频频,杨柳依依”,
    “三生两会,两世相逢”。既然,山和水可以彼此相忘,星和月可以流光相皎。风华只是一指流沙,苍老只是一段年华。那么,心儿在您的世界,您的天空可真的有我?" />
    
                     <TextView
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:padding="20dip"
                         android:text="“陌上欣欣青绿邈,岁岁年年,轮转无终了。" />
    
                </LinearLayout>
    
                <LinearLayout
                    android:id="@+id/image_bg"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
    
                    <ImageView
                        android:id="@+id/jietu_image"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_centerInParent="true" />
                </LinearLayout>
            </RelativeLayout>
        </ScrollView>
    
    </LinearLayout>

    主界面:

    public class MainActivity extends Activity {
    
        private TextView button;
    
        private ScrollView mScrollView;
    
        private ImageView mImage;
    
        private LinearLayout mBg;
    
        private Utils utils;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_main);
            utils=new Utils(MainActivity.this);
            initView();
            button.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
    
    
                    Bitmap bitmap = utils.getBitmapByView(mScrollView);//这里返回的是没有水印的图片
                    mImage.setVisibility(View.VISIBLE);
    
                    utils.startAnim(mBg,mImage,bitmap);
    
    //              bitmap= utils.addTagUtil(bitmap);//返回有图片水印
    
                    bitmap=utils.drawTextToBitmap(bitmap, "http://blog.csdn.net/qq_25193681");//返回有文字的水印
    
                    utils.saveCroppedImage(bitmap);
    
                    mImage.setImageBitmap(bitmap);
    
                    mImage.setVisibility(View.VISIBLE);
    
                }
            });
    
        }
    
    
        private void initView() {
            mScrollView=(ScrollView) findViewById(R.id.mScrollview);
            button=(TextView) findViewById(R.id.save);
            mBg=(LinearLayout) findViewById(R.id.image_bg);
            mImage=(ImageView) findViewById(R.id.jietu_image);
        }
    
    }
    

    工具类;

    public class Utils {
        private Context mContext;
    
        public Utils(Context mContext) {
            this.mContext = mContext;
        }
        private static String newFilePath = "";
    
    
    
    /**
     * 定义动画
     * @param mBg 父级容器
     * @param mImage 将要显示的图片控件
     * @param bitmap 图片
     */
        public  void startAnim(final LinearLayout mBg,final ImageView mImage,final Bitmap bitmap){
            //设置为半透明
            mBg.setBackgroundColor(Color.parseColor("#e0000000"));
    
            PropertyValuesHolder values1=PropertyValuesHolder.ofFloat("alpha", 0f,1f,0.5f);
            PropertyValuesHolder values2=PropertyValuesHolder.ofFloat("scaleX", 1,3/4f);
            PropertyValuesHolder values3=PropertyValuesHolder.ofFloat("scaleY", 1,3/4f);
            ObjectAnimator animator=ObjectAnimator.ofPropertyValuesHolder(mImage, values1,values2,values3);
            animator.setDuration(1000);
            animator.setInterpolator(new DecelerateInterpolator());
            animator.start();
    
            animator.addListener(new AnimatorListener() {
    
                @Override
                public void onAnimationStart(Animator arg0) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animator arg0) {
                    // TODO Auto-generated method stub
    
                }
    
                @Override
                public void onAnimationEnd(Animator arg0) {
                    mImage.setVisibility(View.INVISIBLE);
                    //重置背景
                    mBg.setBackgroundColor(Color.parseColor("#00000000"));
    
                }
    
                @Override
                public void onAnimationCancel(Animator arg0) {
                    // TODO Auto-generated method stub
    
                }
            });
        }
    
        /**
         * 把布局转换成bitmap
         * @param scrollView
         * @return bitmap
         */
        public  Bitmap getBitmapByView(ScrollView scrollView) {
            Bitmap bitmap = null;
    
            // 创建对应大小的bitmap
            bitmap = Bitmap.createBitmap(scrollView.getWidth(), scrollView.getHeight(),
                    Bitmap.Config.ARGB_8888);
            final Canvas canvas = new Canvas(bitmap);
            scrollView.draw(canvas);
            // 测试输出
            FileOutputStream out = null;
            try {
    
                out = new FileOutputStream("/sdcard/screen_test.png");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            try {
                if (null != out) {
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
                    out.flush();
                    out.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return bitmap;
        }
        /**
         * 保存图片至/sdcard/myFolder文件夹下
         * @param bmp
         */
        public  void saveCroppedImage(Bitmap bmp) {
            File file = new File("/sdcard/myFolder");
            if (!file.exists())
                file.mkdir();
            long time= System.currentTimeMillis();
    
            file = new File("/sdcard/"+time+".jpg".trim());
            String fileName = file.getName();
            String mName = fileName.substring(0, fileName.lastIndexOf("."));
            String sName = fileName.substring(fileName.lastIndexOf("."));
    
            newFilePath = "/sdcard/myFolder" + "/" + mName + sName;
            file = new File(newFilePath);
            try {
                file.createNewFile();
                FileOutputStream fos = new FileOutputStream(file);
                bmp.compress(CompressFormat.JPEG, 50, fos);
                fos.flush();
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        /**
         * 有水印的保存
         * @param photo 当前截图的bitmap
         * @param mark 水印的图片
         * @param image 控件
         * @return
         */
        public Bitmap addTagUtil(Bitmap photo){
            Bitmap photoMark = Bitmap.createBitmap(photo.getWidth(), photo.getHeight(), Config.ARGB_8888);  
            Bitmap mark= BitmapFactory.decodeResource(mContext.getResources(), R.drawable.ic_launcher);  
            Canvas canvas = new Canvas(photoMark);  
            canvas.drawBitmap(photo, 0, 0, null);  
            Bitmap bitmapMark =mark.copy(Bitmap.Config.ARGB_8888, true);
            canvas.drawBitmap(bitmapMark, photo.getWidth() - bitmapMark.getWidth()-10, photo.getHeight() - bitmapMark.getHeight(), null);  
            canvas.save(Canvas.ALL_SAVE_FLAG);  
            canvas.restore();  
            return photoMark;
        }
        /** 
         * 添加文字到图片,类似水印文字。 
         * @param gContext 
         * @param gResId 
         * @param gText 
         * @return 
         */  
        public  Bitmap drawTextToBitmap(Bitmap bitmap, String gText) {  
            Resources resources = mContext.getResources();  
            float scale = resources.getDisplayMetrics().density;  
    
            android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();  
            if (bitmapConfig == null) {  
                bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;  
            }  
            bitmap = bitmap.copy(bitmapConfig, true);  
    
            Canvas canvas = new Canvas(bitmap);  
            Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  
            paint.setColor(Color.parseColor("#458EFD"));  
            paint.setTextSize((int) (3 * scale*5));  
            paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);  
            Rect bounds = new Rect();  
            paint.getTextBounds(gText, 0, gText.length(), bounds);  
            int x = (bitmap.getWidth() - bounds.width())/10*9 ;  
            int y = (bitmap.getHeight() + bounds.height())/10*9;  
            canvas.drawText(gText, x , y, paint);  
    
            return bitmap;  
        }  
    
    }

    当然,我觉得小伙伴光粘贴复制,那肯定不过瘾,下面我再把源码贴上:源码

    展开全文
  • 然后在assets文件夹中创建fonts文件夹用来保存你需要的字体文件,到这里为止,我们就可以通过代码找到我们要用的字体文件,接下来就是在代码中使用它,修改app文字样式. 找到你的app使用的主题(AndroidManifest文件中...

    在src/main文件夹下创建assets文件夹(和java文件夹平级),然后在assets文件夹中创建fonts文件夹用来保存你需要的字体文件,到这里为止,我们就可以通过代码找到我们要用的字体文件,接下来就是在代码中使用它,修改app的文字样式.

    找到你的app使用的主题(AndroidManifest文件中的application中的theme属性),然后设置默认字体样式(有

    noraml(普通字体,系统默认使用)

    sans(非衬线字体)

    serif(衬线字体)

    monospace(等宽字体)四种)

    <style name="AppTheme" parent="android:Theme.Light" >
            <item name="android:typeface">serif</item>
     </style>

    最后,在你的application文件的onCreate方法中,调用字体文件.

    try {
        Field field = Typeface.class.getDeclaredField("SERIF");
        field.setAccessible(true);
        field.set(null, Typeface.createFromAsset(getAssets(), "fonts/yahei.ttf"));
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

     

    或者使用笨方法,每个textview都自己去设置字体

    TextView tvTitle = (TextView) findViewById(R.id.tv_title_left);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/字体文件.ttf");
    tvTitle.setTypeface(typeface);
    展开全文
  • 安卓开发:修改app文字样式

    千次阅读 2018-10-24 11:22:48
    我所理解最深沉的爱莫过于我活成了你的样子 ------《这个杀手不太... 在我们开发安卓应用的时候,会有很奇葩的需求,比如开发安卓app但是要应用IOS的字体样式,活着应用其他的字体样式,所以我们就要学会如何修改...

    我所理解最深沉的爱莫过于我活成了你的样子                                                                                     ------《这个杀手不太冷》


           在我们开发安卓应用的时候,会有很奇葩的需求,比如开发安卓app但是要应用IOS的字体样式,活着应用其他的字体样式,所以我们就要学会如何修改安卓app的字体样式。

           这期间查找了好多资料,发现有些真的太复杂了,我本人就喜欢用一些简单粗暴的方法,不整那些花里胡哨的。

           那么如何修改安卓app的字体样式呢?

    首先我们得下载我们所需要的字体文件(ttf活着otf格式),目前Android Studio好像支持这两种字体样式文件格式,下载地址我们可以去站长之家字体库来下载:网络连接

    然后像我的另一篇博文“安卓如何适配语言与系统语言同步”一样,右键res---New---Android resource directory---选择Resource type:font,新建font文件夹。然后在文件夹下面加入我们需要的字体文件,新建一个font.xml文件,右键new里新建,然后使用fontstyle和font等属性。

    font.xml
    <?xml version="1.0" encoding="utf-8"?>
    <font-family xmlns:android="http://schemas.android.com/apk/res/android">
        <font
            android:fontStyle="normal"
            android:font="@font/sf_pro_display_regular" 
            android:fontWeight="0"/>
    </font-family>

    最后,在我们需要应用字体样式的style.xml文件里对应加入我们自己的font文件

    <item name="android:fontFamily">@font/font</item>

     

    展开全文
  • Android小白快速编写APP登录界面 1、打开Android Studio 2、选择空白界面 3、activity_main文件代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=...
  • 移动APP界面布局

    千次阅读 2017-10-25 17:32:46
    移动APP页面布局(Layout)是我们设计app界面的时候,最主要的设计任务。一个app的好与不好,很大部分取决于移动APP页面布局的合理性。下图为APP最原始的布局模型。页面布局顾名思义就是对页面的文字、图形或表格进行...
  • 升级界面上默认的文字为install system update ,那么可以改吗,那当然可以 首先这部分文字的来源recovery/res-xhdpi/images/install_text.png,里面是所有翻译的列表,recovery会对图片进行解析 ,根据传入的locale ...
  • 鸿蒙 OS:使用 JavaScript 开发 Todo App UI 界面

    万次阅读 多人点赞 2020-09-19 22:38:08
    在利用了分布式系统的优势之后,多个设备间可以共享应用程序界面和数据,并且对于开发者,也可以使用一套代码编写应用,就可以在多种设备终端上运行。 一开始我并没有太关注鸿蒙系统,以为它只能使用 Java 开发应用...
  • Matlab Appdesigner界面设计基本用法

    千次阅读 2020-12-26 10:37:07
    界面 2.按钮
  • App界面设计流程

    千次阅读 2015-06-26 15:01:42
    4.框架层:梳理每一个主界面的内容、布局 5.表现层:视觉设计,涉及图标、配色、切图。 产品经理主要关注1~2,在去找设计师之前,请先问自己以下几个问题,以保证需求明确: 产品给用户带来的价值是什么?
  • 使用matlab设计交互界面App Designer)

    万次阅读 多人点赞 2019-07-29 14:43:14
    Matlab的App Designer可以帮助我们快速编写简易的用户界面程序。本文是一个笔记,记录利用App Designer开发交互界面的一些tips。 1. 主体流程 1.1 一个最简单的DemoApp 在matlab主界面里面新建App(保存为DemoApp...
  • 使用Adaptive cards来构建Teams app界面

    万次阅读 2019-11-02 10:33:15
    Teams app的task module十分好用,当用户点击了一个卡片上的按钮是可以在Teams弹出一个对话框,对话框的内容可以是开发人员自己的一个网页页面,或者是adaptive card。 在我的LuckyDraw bot,我比较了这两种的...
  • 第一部分:APP界面设计流程概要分享,总共11个步骤。  1. 确定你的创意方向或者围绕主题展开您的创意是否有人做过,如果有类似的app,那就要多多考虑,争取超越并且有一些独特的优化设计在其中  2. 定位应用和...
  • UI设计理念-app界面设计流程

    万次阅读 2016-04-05 15:49:02
    不多说,先介绍下关于app界面流程图。 完整的流程,分层次设计,自下而上去完成 1.策略层,定义产品使命、价值、目标人群 2.愿景/功能层:定义核心场景、功能列表 3.结构层:做流程图、信息架构,确定主导航、...
  • 主要讲FMX开发APP界面下可视控件的布局基础知识,也是一些基本的概念,也只有当你了解这些基础知识后,才能更好的应用界面布局。
  • Android App界面和流畅度优化   所谓界面和流畅度优化,就是尽可能多地消除用户可直接感知的、影响用户操作体验的bug 1、人为在UI线程中做轻微耗时操作,导致UI线程卡顿 人为避免一切耗时操作 开启 StrictMode...
  • 效果图如下: ...ctrl+R调出标尺,将画布分成上下同等的两部分。...上半部分继续添加标线至中间,使用...这个步骤主要涉及三个空心圆,主要使用菜单栏-》选择-》修改-》收缩,收缩10个像素,按delete键,将中间的
  • 如何修改安卓界面上的图片和文字

    千次阅读 2019-04-09 16:35:57
    本视频通过专业的视角,来一步步介绍如何修改安卓界面上面的图片和文字,如果图片在安装包里面,相对修改比较容易,如果在网络上,需要通过抓包工具定位。 第二讲如何修改安卓界面上的图片和文字 由于不能上传视频...
  • 一种程序界面文字换肤方法 Aiguille.LIU 2008-11-23  对于GUI程序,界面上会呈现许多图片和文字信息。图片一般都是运行时从外部载入的,更换比较容易。然而,文字信息大多情况下都是直接写在程序代码中...
  • MUI框架-05-用MUI做简单App界面
  • 在我脑子还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的缺陷,手指和鼠标箭头...
  • 当我看着我以前做的一些app界面,我意识到我应该把我的界面设计能力水平再提升一个,因为实在是丑啊!贴一些以前的设计: 现在看来,是不能看的了。我主要是做需求设计,后面也有一些美工的工作,我觉得有必要总结...
  • APP界面设计必备,常用字体规范

    千次阅读 2017-09-19 13:00:00
    好长时间没发帖,净想过年了,过年哈,倒腾工作总结和年货是大事。 这几天有人问我说:“最近看了好多教程,都老高大上了,但是老弟我做不到呀,想学...一个App,不同部分的字体字号你能准确地说出来吗?很多刚做AP...
  • 移动APP界面的加载动画与进度条

    千次阅读 2016-10-10 18:14:04
    调查显示,人们总是希望看到进度条的,尤其是在各种数据化APP中。充分理解当前状态或进度,对用户来说至关重要。另外,在需要耐心等待的时候,进度条是极为强大的工具。活力四射、有趣且漂亮令人愉快的进度条,绝对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,179
精华内容 17,671
关键字:

修改app里的界面文字