一道zhangying机试题
来源:互联网 发布:创意艺术大学吧 知乎 编辑:程序博客网 时间:2024/05/18 02:04
功能很好实现,但是用到的设计模式没有搞清楚,有一句话没太懂:每个调节项目调节时触发的动作会修改,不知道是什么含义,有明白的童鞋指导一下,选用何种设计模式。
下面看一下功能代码:
1.MainActivity.java:
package com.yayun.zhangyingtest;import android.R.integer;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.LinearLayout;import android.widget.SeekBar;import android.widget.LinearLayout.LayoutParams;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;public class CopyOfMainActivity extends Activity implements OnClickListener,SetValue {private LinearLayout mLinearLayoutTVs;private Button btn_color, btn_light, btn_saturation;private TextView tv_color_value, tv_light_value, tv_saturation_value;private SeekBar seekBar;private int i=0;private final int TVLightId=0x001;private final int TVColorId=0x002;private final int TVSaturationId=0x003;private final int BtnLightId=0x100;private final int BtnColorId=0x200;private final int BtnSaturationId=0x300;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main1);seekBar = (SeekBar) findViewById(R.id.seekbar);mLinearLayoutTVs = (LinearLayout) findViewById(R.id.ll_tvs);AddWidget("亮度", "80", tv_light_value, btn_light,BtnLightId,TVLightId);AddWidget("色彩", "100", tv_color_value, btn_color,BtnColorId,TVColorId);AddWidget("饱和度", "90", tv_saturation_value, btn_saturation,BtnSaturationId,TVSaturationId);btn_color=(Button)findViewById(BtnColorId);btn_light=(Button)findViewById(BtnLightId);btn_saturation=(Button)findViewById(BtnSaturationId);tv_color_value=(TextView)findViewById(TVColorId);tv_light_value=(TextView)findViewById(TVLightId);tv_saturation_value=(TextView)findViewById(TVSaturationId);seekBar.setProgress(getProgress(tv_light_value));btn_color.setOnClickListener(this);btn_light.setOnClickListener(this);btn_saturation.setOnClickListener(this);seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar arg0) {// TODO Auto-generated method stub}@Overridepublic void onStartTrackingTouch(SeekBar arg0) {// TODO Auto-generated method stub}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {if(i==0){tv_light_value.setText(String.valueOf(progress));}else if(i==1){tv_color_value.setText(String.valueOf(progress));}else{tv_saturation_value.setText(String.valueOf(progress));}}});}private void AddWidget(String textViewName, String textViewValue,TextView tv_value, Button btnId,int btnIntID,int tvIntID) { LinearLayout.LayoutParams lp3=new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);LinearLayout ll_tvsLayout = (LinearLayout) findViewById(R.id.ll_tvs);LinearLayout ll_btnsLayout = (LinearLayout) findViewById(R.id.ll_btns);final LinearLayout layout2 = new LinearLayout(this);layout2.setOrientation(LinearLayout.HORIZONTAL);TextView tv_name = new TextView(this);tv_name.setText(textViewName + ":");tv_value = new TextView(this);tv_value.setId(tvIntID);tv_value.setText(textViewValue);btnId = new Button(this);btnId.setText(textViewName);btnId.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1.0f)); btnId.setId(btnIntID);layout2.addView(tv_name);layout2.addView(tv_value);ll_tvsLayout.addView(layout2);ll_btnsLayout.addView(btnId);}private int getProgress(TextView tv) {return Integer.parseInt(tv.getText().toString());}@Overridepublic void onClick(View v) {switch (v.getId()) {case BtnLightId:i=0;seekBar.setProgress(getProgress(tv_light_value));break;case BtnColorId:i=1;seekBar.setProgress(getProgress(tv_color_value));break;case BtnSaturationId:i=2;seekBar.setProgress(getProgress(tv_saturation_value));break;default:break;}}@Overridepublic void SetLight(int value) {//实设预留方法// TODO Auto-generated method stub}@Overridepublic void SetColor(int value) {// TODO Auto-generated method stub}@Overridepublic void SetSaturature(int value) {// TODO Auto-generated method stub}}2.布局文件
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <LinearLayout android:id="@+id/ll_tvs" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="10dp" android:paddingTop="20dp" android:orientation="vertical" > </LinearLayout> <SeekBar android:id="@+id/seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/ll_btns" android:max="100" /> <LinearLayout android:id="@+id/ll_btns" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" > </LinearLayout></RelativeLayout>运行如下:
但是没有达到题目要求的,用设计模式实现,求大神指导!!多谢
0 0
- 一道zhangying机试题
- 华为一道机试题
- 一道机试题
- 一道C机试题目
- 一道华为的机试题
- 一道试题
- 一道试题
- 一道试题
- 一道试题
- 面试的一道机试题: 排序 难度(**)
- 自己做的一道机试题
- 迅雷的一道机试题___URL解析
- 华为的一道机试题,单词倒序
- 一道关于HttpClient的机试题
- 一道微软面试题
- 一道面试题
- 华为一道面试题
- 一道面试题
- 解决Windows 7下Firefox下载入Localhost网站超慢办法
- Hibernate JPA 之关联映射
- linux中的livecd、liveDVD和其他安装方式简介
- 传智播客全新升级入主武汉金融港。
- MathType中关于箭头符号的那些秘密
- 一道zhangying机试题
- C++命名空间
- JSon对象、JSon数组和JSon字符串。
- HDU 2717
- 动态设置UITableViewCell的高度
- 表达式解析器 IKExpression
- hdu 1004 Let the Balloon Rise(trie||映射统计)
- 【Python 学习手册笔记】动态类型简介
- 内存映射数据交换