我已经成功地抽象了数据层和业务层。但是最近有一位同事提到在UI和业务层之间抽象UI层。但是我无法解决这个问题。我无法想象该UI层与业务层的不同之处。我已经为文章苦恼了,似乎并没有找到太多帮助。有人可以告诉我一个简单的例子吗?
我有一个LayerDrawable,它应该显示5个位图.1个背景和4个图标(对于每个LayerDrawable可以是不同的),如Grid.不幸的是,这些图标的宽度与高度不同.我的问题是调整它们的大小,同时保持它们的比例并将它们置于其位置(1-4个图标,5个背景):
==================
| | | |
| 1 | | 2 |
|------.5 .------|
|------. .------|
| 3 | | 4 |
| | | |
==================
Run Code Online (Sandbox Code Playgroud)
如果我调整这些位图的大小,给它们Gravity.CENTER它们将不再适合背景矩形的边界.如果我离开,Gravity.CENTER他们似乎会在我打电话后立即重新调整layerDrawable.setLayerInset(numlayer, left, top, right, bottom).做正确的方法是什么?如何在正确放置时保持比例?到目前为止我还无法理解的是为什么来自BitmapDrawable的getIntrinsicWidth/Height返回的东西(小于)来自原始Bitmap的getWidth/Height.
我尝试了什么:
1.从XML中获取它们,在内部放置一个"虚拟绘图"并用上述结果替换它.2.在我的程序中创建LayerDrawable,传递所有drawables.似乎setLayerInset没有任何影响,或者我只看到背景(我的可绘制数组中的元素0)
3.扩展LayerDrawable并尝试自己跟踪任何事情而没有合理的结果
我正在开发一些应用程序,它由三层组成:
在开始之前,我已经阅读了David Geary和Cay S. Horstmann撰写的Core JavaServer Faces(第3版)一书中的一些章节.在本书中,作者强烈建议使用@Named注释而不是@ManagedBean.好的,我以为我可以试试.
然后我通过实现一些基本功能 - 用户登录来继续构建我的应用程序.
我还读到了一些新的注释,即@Inject.我认为只在接口上注入一层到另一层是非常舒服的.但是我害怕我误解了一些东西,所以我带着问题来找你.
让我介绍一下我的代码的一些部分:
CredentialsBean.java:
@Named("userCredentials")
public class CredentialsBean {
@Inject
AccountService accountService;
private String login;
private String password;
public String verify()
{
if (accountService.verifyCredentials(login, password))
return "success";
else
return "failure";
}
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
AccountService.java:
public interface AccountService {
public Boolean verifyCredentials(String login, String password);
}
Run Code Online (Sandbox Code Playgroud)
AccountServiceImpl.java:
public class AccountServiceImpl implements AccountService {
@Inject
AccountDAO …Run Code Online (Sandbox Code Playgroud) 我有一个带有嵌套层结构的XCD文件:
image
front-layer
content-layer
content-layer-name-1
content-layer-name-2
content-layer-name-3
back-layer
Run Code Online (Sandbox Code Playgroud)
我打开该文件image = pdb.gimp_file_load(xcf_file, xcf_file),并可以得到front-layer,content-layer并且back-layer为image.layers[0],image.layers[1]和image.layers[2].但Gimp无法content-layer通过列表索引获取子层.
我可以使用pdb.gimp_image_get_layer_by_name(image, 'content-layer-name-3'),但我不知道图层的名称.
我尝试pdb.gimp_item_get_children(image.layers[1]),但这个方法返回INT32ARRAY项目的孩子列表,我还没有找到如何通过其ID检索项目.
如何在Gimp(2.8)中使用Python从组层获取子层?
是否可以在OpenLayers的一个图层中放置多个图像?
理想情况下,我想将我的图片分为几类(每一层是一个类别),这样我可以整体显示和隐藏每个类别,而不是显示/隐藏每张图片。
这可能吗?我发现了几个使用OpenLayers的Image层(似乎仅支持一个图像)或使用带有StyleMap的Vector层(似乎也仅允许一个外部图像)的示例。
我是否忽略了某些内容,还是会花费更多的精力(例如,创建自定义图层类型)?
提前致谢!
我有一个问题.我有一个下拉菜单,但是下拉列表总是在身体后面一层,尽管菜单的z-index设置为999且body的z索引设置为-999
请chceck http://www.w3dominik.com/x/finemoney/(右上角的菜单,它表示下拉列表,应该有2个选项,现在只有1个可见)
感谢帮助
每当我想知道Gimp中的图层尺寸时,我打开"缩放图层"对话框来获取它.是否有更好的方式一目了然?可能是一些配置选项,可以在图层名称的底部/右侧或底部栏中显示它...
也许这可能是一个Gimp功能请求?
谢谢!
这是我放在我的drawable文件夹中的shape_two文件.
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#00FFFFFF" />
<stroke
android:width="3dp"
android:color="#00ff00" />
</shape>
Run Code Online (Sandbox Code Playgroud)
这是我绘制形状的代码
private void drawLayer(ImageView tempView, Drawable drble, int wherecall) {
Drawable drawableRes = getResources()
.getDrawable(R.drawable.shape_two);// loadDrawable(R.drawable.shape_two);
int h = tempView.getMeasuredHeight();
int w = tempView.getMeasuredWidth();
drawableRes.setBounds(0, 0, w, h);
Drawable[] drawableLayers = { drble, drawableRes };
ld = new LayerDrawable(drawableLayers);
if (wherecall != 3) {
tempView.setBackground(ld);
} else {
tempView.setImageDrawable(ld);
}
td = new TransitionDrawable(drawableLayers);
td.setCrossFadeEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
这里tempview是我的ImageView和drble是另一个drawable我在另一层使用.此代码没有任何错误消息正常工作.
我的问题是当我在我的ImageViews上绘制形状时,它会重新调整大小(更改高度和宽度).我有不同大小的imageView,我想使用单一形状的xml绘制边框,我的ImageView大小不应该这样做.任何人都可以告诉我如何实现它.
搜索了很多东西后我才知道我不能对它进行位图操作,根据形状重新调整大小,因为xml文件不是位图.我在某地读过这个问题可以通过使用canvas来解决但是怎么做..
更新:
我观察到,虽然更改图层onsingletap只有高度增加而不是ImageView的宽度.如果我的布局有4个ImageView,那么第一次只在不同的imageView上单击,所有imageView重新调整大小一次.之后,如果我们再次点击 - 再没有什么可以重新调整大小.我想在第一次在ImageView重新设置视图上设置图层,然后调整自己.我不知道为什么会发生这种情况.
我正在为我的所有布局应用相同的代码,对于某些布局,它的工作正常,有些则不是.
我还试过了什么.
我试过通过GradientDrawable制作边框图像
GradientDrawable gd …Run Code Online (Sandbox Code Playgroud)我想绘制一个UIView图层但是当我这样做时,图层框架与UIView框架不相等(在预览中).

class ViewController: UIViewController {
var graphHeight:CGFloat = 100
var graphSize:CGFloat!
override func viewDidLoad() {
super.viewDidLoad()
graphSize = self.view.frame.height/CGFloat(M_PI)
let graphRect:CGRect = CGRectMake(0, graphHeight, self.view.frame.width, graphSize)
let background = blueGardient()
var theView:UIView = UIView(frame: graphRect)
background.frame = theView.frame
theView.backgroundColor = UIColor.yellowColor()
theView.layer.cornerRadius = 8
theView.layer.borderWidth = 1
theView.layer.borderColor = UIColor.redColor().CGColor
theView.layer.insertSublayer(background, atIndex: 0)
self.view.addSubview(theView)
}
func blueGardient()->CAGradientLayer{
let topColor = UIColor(red: 0, green: 0, blue: 255, alpha: 0.7)
let bottomColor = UIColor(red: 0, green: 0, blue: 255, alpha: 0.9)
let …Run Code Online (Sandbox Code Playgroud) 给定3D输入张量(假设为(8,32,100)),我试图在Keras中实现Lambda层以选择此类输入向量的切片。
如果我一直想要相同的切片(例如,所有维之间的所有输入都位于第二维的位置2和4之间),那么我认为这会起作用:
Lambda(lambda x: x[:,2:4,:], output_shape=(3,100,), name="lambda_layer")(input)
但就我而言,对于每个训练样本,我都有兴趣访问不同的切片,然后将它们连接到密集层。我在这些行下面尝试了该选项,但是我无法将标量(i和j)输入模型,因为它们将被视为元组(并且定义shape=(1)无效)。
i = Input(shape=(1,), dtype="int32")
j = Input(shape=(1,), dtype="int32")
Lambda(lambda x: x[:,i:j,:], output_shape=(3,100,), name="lambda_layer")([input,i,j])