当前位置:网志问答 > 小说图书 > 自定义控件时为什么@drawable/title
已有回答

自定义控件时为什么@drawable/title

网志问答在浏览297次收到腾讯网的热心用户abcde...12345关于垂耳兔自定义控件时为什么@drawable/title的提问,关于这些疑难问题,进行了深入的分析。得到了网志问答众多网友的支持,得到了如下解决方案,摘录了部分优质回答,如对此有任何好的意见,欢迎大家进行探讨共同解决!

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

本页链接:http://www.oxrm.com/question/1521374361212284

AD728-90
满意答案

第1个优秀答案:

 331215问答 进入AndroidStu职送善制措景加dio2.0打开临错末型春加约整项目后依次进入Setting->Build,Execution,Deployment->InstantRun查看即时运行的设置项目,你可能会发现勾选项目是灰色的,如图密事女武妒  这个是因为你的projectgradle是旧的,点击下Up路销破没dateProject稍等片刻迫就好。  更新我发现Projectgragle的依赖:  dependencies{  classpath'com.***.build:gradle:1.2.3'}  被更新成了:  dependencies{  classpath'com.***.build:gradle:2.0.0-alpha1'}    这个时候再次打开InstantRun的设置会发现已专理大奏蛋事助宣经可以勾选了,请保持如图的勾选:   肥低容理铁扬茶论状 此时我们观察运行按钮的左侧多了一个类似于“闪电”的标志:    我们的项目中有这样的风倒素曾全和观一个页面:    有积为布罗重结置应销原准备把临时拜访换成别的字串比如“你好”,同时换掉左边的Icon。它是一个拥有划友张茶就最而有自定义属性的自定义控件,布局代码片段为:    1  <com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout  2  android:id="@+id/ll_sudden_visit"  3  android:layout_width="match_parent"  4  android:layout_height="wrap_content"  5  app:CLIRBRIconId="@drawable/icon_temp"  6  app:CLIRBRTitleName="@string/sud军六各换种den_visit" 让衡调花映看控 7  app:CLIR节际诗有停端达BRActionIconId="@drawable/btn_go_nor"  8  />    首先我们需要先跑一下这个项目,然后先点击界面直到上述的界面为止停住厂齐不动,这个时候我们再修改湖损究衣格到鸡重来缺上述代码(这一步是必须的,不然的Insta小政类态觉修机却ntRun功能使用时会出现问题,导致重新运行则开右硫模搞理演年阻)  这个时候我们让模拟器保持在这个页面上,同时修改布局代码成:    1  <com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout  2  android:id="@+id/ll_sudden_visit"  3  android:layout_width="match_parent"  4  android:layout_height="wrap_content"  5  app:CLIRBRIconId="@drawable/icon_resent"//修改1  6  app:CLIRBRTitleName="你好"//修改2  7  app:CLIRBRActionIconId="@drawable/btn_go_nor"  8  />


第2个优秀答案:

Android自定义DialogAndroid开发过程中,常常会遇到一些需求场景——在界面上弹出一个弹框,对用户进行提醒并让用户进行某些选择性的操作,如退出登录时的弹窗,让用户选择“退出”还是“取消”等操作。Android系统提供了Dialog类,以及Dialog的子类,常见如AlertDialog来实现此类功能。一般情况下,利用Android提供的Dialog及其子类能够满足多数此类需求,然而,其不足之处体现在:1.基于Android提供的Dialog及其子类样式单一,风格上与App本身风格可能不太协调;2.Dialog弹窗在布局和功能上有所限制,有时不一定能满足实际的业务需求。本文将通过在Dialog基础上构建自定义的Dialog弹窗,以最常见的确认弹框为例。本样式相对比较简单:上面有一个弹框标题(提示语),下面左右分别是“确认”和“取消”按钮,当用户点击“确认”按钮时,弹框执行相应的确认逻辑,当点击“取消”按钮时,执行相应的取消逻辑。首先,自定义弹框样式:1<?xmlversion="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="http://schemas.***.com/apk/res/android"3android:layout_width="match_parent"4android:layout_height="wrap_content"5android:background="@drawable/dialog_bg"6android:orientation="vertical">78<TextView9android:id="@+id/title"10android:layout_width="wrap_content"11android:layout_height="wrap_content"12android:layout_gravity="center"13android:paddingTop="14dp"14android:textColor="@color/login_hint"15android:textSize="@dimen/text_size_18"/>1617<LinearLayout18android:layout_width="match_parent"19android:layout_height="wrap_content"20android:layout_marginBottom="14dp"21android:layout_marginLeft="20dp"22android:layout_marginRight="20dp"23android:layout_marginTop="30dp">2425<TextView26android:id="@+id/confirm"27android:layout_width="wrap_content"28android:layout_height="wrap_content"29android:layout_marginRight="10dp"30android:layout_weight="1"31android:background="@drawable/btn_confirm_selector"32android:gravity="center"33android:textColor="@color/white"34android:textSize="@dimen/text_size_16"/>3536<TextView37android:id="@+id/cancel"38android:layout_width="wrap_content"39android:layout_height="wrap_content"40android:layout_marginLeft="10dp"41android:layout_weight="1"42android:background="@drawable/btn_cancel_selector"43android:gravity="center"44android:textColor="@color/login_hint"45android:textSize="@dimen/text_size_16"/>46</LinearLayout>4748</LinearLayout>然后,通过继承Dialog类构建确认弹框控件ConfirmDialog:1packagecom.corn.widget;23importandroid.app.Dialog;4importandroid.content.Context;5importandroid.os.Bundle;6importandroid.util.DisplayMetrics;7importandroid.view.LayoutInflater;8importandroid.view.View;9importandroid.view.Window;10importandroid.view.WindowManager;11importandroid.widget.TextView;1213importcom.corn.R;1415publicclassConfirmDialogextendsDialog{1617privateContextcontext;18privateStringtitle;19privateStringconfirmButtonText;20privateStringcacelButtonText;21privateClickListenerInterfaceclickListenerInterface;2223publicinterfaceClickListenerInterface{2425publicvoiddoConfirm();2627publicvoiddoCancel();28}2930publicConfirmDialog(Contextcontext,Stringtitle,StringconfirmButtonText,StringcacelButtonText){31super(context,R.style.MyDialog);32this.context=context;33this.title=title;34this.confirmButtonText=confirmButtonText;35this.cacelButtonText=cacelButtonText;36}3738@Override39protectedvoidonCreate(BundlesavedInstanceState){40//TODOAuto-generatedmethodstub41super.onCreate(savedInstanceState);4243init();44}4546publicvoidinit(){47LayoutInflaterinflater=LayoutInflater.from(context);48Viewview=inflater.inflate(R.layout.confirm_dialog,null);49setContentView(view);5051TextViewtvTitle=(TextView)view.findViewById(R.id.title);52TextViewtvConfirm=(TextView)view.findViewById(R.id.confirm);53TextViewtvCancel=(TextView)view.findViewById(R.id.cancel);5455tvTitle.setText(title);56tvConfirm.setText(confirmButtonText);57tvCancel.setText(cacelButtonText);5859tvConfirm.setOnClickListener(newclickListener());60tvCancel.setOnClickListener(newclickListener());6162WindowdialogWindow=getWindow();63WindowManager.LayoutParamslp=dialogWindow.getAttributes();64DisplayMetricsd=context.getResources().getDisplayMetrics();//获取屏幕宽、高用65lp.width=(int)(d.widthPixels*0.8);//高度设置为屏幕的0.666dialogWindow.setAttributes(lp);67}6869publicvoidsetClicklistener(ClickListenerInterfaceclickListenerInterface){70this.clickListenerInterface=clickListenerInterface;71}7273privateclassclickListenerimplementsView.OnClickListener{74@Override75publicvoidonClick(Viewv){76//TODOAuto-generatedmethodstub77intid=v.getId();78switch(id){79caseR.id.confirm:80clickListenerInterface.doConfirm();81break;82caseR.id.cancel:83clickListenerInterface.doCancel();84break;85}86}8788};8990}在如上空间构造代码中,由于控件的"确认"和"取消"逻辑与实际的应用场景有关,因此,控件中通过定义内部接口来实现。在需要使用此控件的地方,进行如下形式调用:1publicstaticvoidExit(finalContextcontext){2finalConfirmDialogconfirmDialog=newConfirmDialog(context,"确定要退出吗?","退出","取消");3***.show();4confirmDialog.setClicklistener(newConfirmDialog.ClickListenerInterface(){5@Override6publicvoiddoConfirm(){7//TODOAuto-generatedmethodstub8confirmDialog.dismiss();9//toUserHome(context);10AppManager.getAppManager().AppExit(context);11}1213@Override14publicvoiddoCancel(){15//TODOAuto-generatedmethodstub16confirmDialog.dismiss();17}18});19}调用中实现了此控件的内部接口,并赋给控件本身,以此在点击按钮时实现基于外部具体业务逻辑的函数回调


第3个优秀答案:

 进入AndroidStudio2.0打开项目后依次进入Setting->Build,Execution,Deployment->InstantRun查看即时运行的设置项目,你可能会发现勾选项目是灰色的,如图  这个是因为你的projectgradle是旧的,点击下UpdateProject稍等片刻就好。  更新我发现Projectgragle的依赖:  dependencies{  classpath'com.***.build:gradle:1.2.3'}  被更新成了:  dependencies{  classpath'com.***.build:gradle:2.0.0-alpha1'}    这个时候再次打开InstantRun的设置会发现已经可以勾选了,请保持如图的勾选:    此时我们观察运行按钮的左侧多了一个类似于“闪电”的标志:    我们的项目中有这样的一个页面:    准备把临时拜访换成别的字串比如“你好”,同时换掉左边的Icon。它是一个拥有自定义属性的自定义控件,布局代码片段为:    1  <com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout  2  android:id="@+id/ll_sudden_visit"  3  android:layout_width="match_parent"  4  android:layout_height="wrap_content"  5  app:CLIRBRIconId="@drawable/icon_temp"  6  app:CLIRBRTitleName="@string/sudden_visit"  7  app:CLIRBRActionIconId="@drawable/btn_go_nor"  8  />    首先我们需要先跑一下这个项目,然后先点击界面直到上述的界面为止停住不动,这个时候我们再修改上述代码(这一步是必须的,不然的InstantRun功能使用时会出现问题,导致重新运行)  这个时候我们让模拟器保持在这个页面上,同时修改布局代码成:    1  <com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout  2  android:id="@+id/ll_sudden_visit"  3  android:layout_width="match_parent"  4  android:layout_height="wrap_content"  5  app:CLIRBRIconId="@drawable/icon_resent"//修改1  6  app:CLIRBRTitleName="你好"//修改2  7  app:CLIRBRActionIconId="@drawable/btn_go_nor"  8  />  然后点击带闪电的运行:    可以看到界面快速的刷新成了:


希望以上的回答,能够帮助你。更多关于自定义控件时为什么@drawable/title的知识及相关经验请访问经验知识https://www.5058.cn/,能够帮助你解决更多的问题,学习更多的经验。
AD160-600